Dear Prof O,
On your "desktop" in Linux? That sounds odd to me.
Everything I do is a bit odd.
If you don't know what you're doing, yes.
That's precisely my point: I don't know what I'm doing.
An exaggeration. As I said, on a modern PC (e.g., an Athlon XP 3800), it only takes a few minutes
I was not refering to "compile time". I was referring to "Where on earth do I get a non-broken version of sed? What is sed anyway? Why won't patch work on this machine with these diff files? Is it patch that's not working or is it just that I'm a retard? What does it mean that the .tar.bz.tar archive is in an unrecognizable format?"
Compiling GPC will be four hours work for me, minimum.
If you find one, it may not work.
So far, that 20041218 distribution of binaries has worked on every single one of the two dozen machines we have loaded it onto. Why would the 20070904 distribution fail to work?
Yours, Kevan
Kevan Hashemi wrote:
An exaggeration. As I said, on a modern PC (e.g., an Athlon XP 3800), it only takes a few minutes
I was not refering to "compile time". I was referring to "Where on earth do I get a non-broken version of sed?
Did you get a message that you need one (or just asking out of curiosity)? Every Linux distribution I know includes GNU sed which is non broken.
What is sed anyway?
A text manipulation tool (though you don't really have to know in order to build GPC). "man sed" or "info sed" will give you more information if you're interested.
Why won't patch work on this machine with these diff files? Is it patch that's not working or is it just that I'm a retard? What does it mean that the .tar.bz.tar archive is in an unrecognizable format?"
Where did you find a .tar.bz.tar file???
So far, that 20041218 distribution of binaries has worked on every single one of the two dozen machines we have loaded it onto. Why would the 20070904 distribution fail to work?
As others have written already, mainly two potential problems:
- Library versions. Though glibc seems to be more tolerant WRT version differences now than it was some years ago, it might still be a problem sometimes. Generally, the older the glibc version the bianry was built with, the better (backward compatibility works better than forward compatibilty), though not too old (whatever this means -- perhaps 1-2 years, and current distributions's glibc versions shouldn't differ by more than that).
- Installation paths. This can be worked around by setting environment variables if necessary. Usually, a binary would be configured with prefix /usr/local. This will not conflict with any system installation of GPC or GCC, but might with a custom installation of GPC/GCC which was also made in /usr/local, and with the same GCC version. (Though with a binary that isn't broken itself, this also shouldn't be a problem, since the GCC that's built with GPC is also a correct one.)
To be absolutely sure, you can use a different prefix, as The Chief did. (BTW, if I'd done that, I might have used /opt/gpc instead of /pascal -- /opt is for "optional application software packages", according to the LSB. I still haven't really understood the difference from /usr/local, but in this case it might jsut come in handy; and gpc is more specific than pascal.) But for a general binary download, I'd normally still go for just /usr/local.
Frank
Dear Frank,
After a three-week break, I'm back to working on a Linux binary of GPC for my users. I apologise for not answering your e-mail of 31/12/08 sooner.
Where did you find a .tar.bz.tar file???
To be strictly correct, it was a tar.bz2.tar file:
gpc346u2-sources.tar.bz2.tar
Which I downloaded from Adriaan's site:
http://adriaan.biz/gpc/gpc346u2-sources.tar.bz2
And somehow gets saved as .tar.bz2.tar on MacOS, but as a .tar.bz2 on Linux.
Generally, the older the glibc version the bianry was built with, the better
I'm going to try to compile the new sources with GPC 3.4.6 on a SLC 3.1 platform (three years old) and see what happens. The GCC libraries available in the SLC 3.1 kernel are up to and including LIBC 2.3.3, while the GPC binary I received from The Chief is looking for a minimum of LIBC 2.4. I won't ask you to explain to me the interaction between the libraries in the kernel, the compiler that built the kernel, and the compiler we use to build GPC. I'm just going to fool around for a day or two and hope to produce a more universally-compatible GPC Linux binary.
- Installation paths.
Thanks for your instructions on the installation paths. I think that was one of the chief hang-ups I had in my previous efforts to compile.
Yours, Kevan
Kevan Hashemi wrote:
After a three-week break, I'm back to working on a Linux binary of GPC for my users. I apologise for not answering your e-mail of 31/12/08 sooner.
Where did you find a .tar.bz.tar file???
To be strictly correct, it was a tar.bz2.tar file:
gpc346u2-sources.tar.bz2.tar
Which I downloaded from Adriaan's site:
http://adriaan.biz/gpc/gpc346u2-sources.tar.bz2
And somehow gets saved as .tar.bz2.tar on MacOS, but as a .tar.bz2 on Linux.
Seems to be a quirk of the downloader then (as the file is really .tar.bz2, as shown in the URL). Tarring a tar.bz2 file again doesn't make much sense, that's why I was wondering.
Generally, the older the glibc version the bianry was built with, the better
I'm going to try to compile the new sources with GPC 3.4.6 on a SLC 3.1 platform (three years old) and see what happens. The GCC libraries available in the SLC 3.1 kernel are up to and including LIBC 2.3.3, while the GPC binary I received from The Chief is looking for a minimum of LIBC 2.4. I won't ask you to explain to me the interaction between the libraries in the kernel, the compiler that built the kernel, and the compiler we use to build GPC. I'm just going to fool around for a day or two and hope to produce a more universally-compatible GPC Linux binary.
Yes, well, basically each binary needs a minimum library version (usually the major version it was built with), and each library version requires a minimum kernel version (though these are usually quite tolerant, i.e., work with rather old kernels). The compiler that built the kernel shouldn't really matter, as long as you don't build kernel modules (which you wouldn't do with GPC honestly ;-). The compiler that built GPC also shouldn't matter (and even less so, if you did a full bootstrap while building GPC, which means that a first version of GCC is built with the existing compiler, and the actual compilers (GPC and if requested GCC) built with this GCC; though under Linux, this is usually not necessary).
Of course, to avoid library dependencies, you can compile statically (option "-static"), at the expense of larger binaries (which may be anything from completely irrelevant to a no-go, depending on circumstances).
Frank
Dear GPC,
Here is a page I have put up for my users, describing how to install GPC on their various platforms. For MacOS I link to Adriaan's page. For Windows Cigwyn and Mingw I link to The Chief's pages. For Linux I provide a with-gcc binary as a first option, and the sources and various utilities as a second option.
http://alignment.hep.brandeis.edu/Software/Pascal/Index.html
I'm hoping that 75% of Linux users can download my binary and run it without library conflicts. The remaining 25% can install the compiler themselves. With the additional instructions on my page, I'm hoping it will take people no more than an hour to make their way through the compile procedure for the first time.
I also have a page describing how to link libraries from various languages together:
http://alignment.hep.brandeis.edu/Software/Mixing_Manual.html
I'm now satisfied that my users have no cause to complain about GPC installation or linking between my libraries and theirs.
Thanks for your help,
Kevan
I disagree with the statements "especially if you are working on Linux" and "If you are working on Linux, there is no universal binary distribution."
I've found the "pre-compiled binary" works fine with every major distro on a wide range of hardware. Please give examples that are not specific to your applications, like Hello.
On Mon, Jan 26, 2009 at 5:59 AM, Kevan Hashemi hashemi@brandeis.edu wrote:
Dear GPC,
Here is a page I have put up for my users, describing how to install GPC on their various platforms. For MacOS I link to Adriaan's page. For Windows Cigwyn and Mingw I link to The Chief's pages. For Linux I provide a with-gcc binary as a first option, and the sources and various utilities as a second option.
http://alignment.hep.brandeis.edu/Software/Pascal/Index.html
I'm hoping that 75% of Linux users can download my binary and run it without library conflicts. The remaining 25% can install the compiler themselves. With the additional instructions on my page, I'm hoping it will take people no more than an hour to make their way through the compile procedure for the first time.
I also have a page describing how to link libraries from various languages together:
http://alignment.hep.brandeis.edu/Software/Mixing_Manual.html
I'm now satisfied that my users have no cause to complain about GPC installation or linking between my libraries and theirs.
Thanks for your help,
Kevan
-- Kevan Hashemi, Electrical Engineer Physics Department, Brandeis University http://alignment.hep.brandeis.edu/
Hi,
Sorry for the late reply. I just want to put forward the idea of using openSUSE build service. I have not tried it myself, so I cannot offer any experience. This it what they say about the service:
The openSUSE Build Service is the only service that allows developers to package software for all major Linux distributionshttp://en.opensuse.org/Build_Service/cross_distribution_package_how_to. The service provides software developers with a convenient and easy to use tool to create and release open source software for openSUSE and other Linux distributionshttp://en.opensuse.org/Build_Service/cross_distribution_package_how_toon different hardware architectures and for a broad user audience.
//Jan
2009/1/26 Kevan Hashemi hashemi@brandeis.edu
Dear GPC,
Here is a page I have put up for my users, describing how to install GPC on their various platforms. For MacOS I link to Adriaan's page. For Windows Cigwyn and Mingw I link to The Chief's pages. For Linux I provide a with-gcc binary as a first option, and the sources and various utilities as a second option.
http://alignment.hep.brandeis.edu/Software/Pascal/Index.html
I'm hoping that 75% of Linux users can download my binary and run it without library conflicts. The remaining 25% can install the compiler themselves. With the additional instructions on my page, I'm hoping it will take people no more than an hour to make their way through the compile procedure for the first time.
I also have a page describing how to link libraries from various languages together:
http://alignment.hep.brandeis.edu/Software/Mixing_Manual.html
I'm now satisfied that my users have no cause to complain about GPC installation or linking between my libraries and theirs.
Thanks for your help,
Kevan
-- Kevan Hashemi, Electrical Engineer Physics Department, Brandeis University http://alignment.hep.brandeis.edu/
Dear Jan,
The openSUSE Build Service is the only service that allows developers to package software for all major Linux distributions...
Sounds good. For the moment, however, our Linux distribution, which I compiled on Scientific Linux, is working fine for all our High Energy Physics friends. If the distribution runs into problems, I will check out SUSE and see if I can get it to work for us.
Yours, Kevan