|
Boost : |
From: Michael D. Crawford (crawford_at_[hidden])
Date: 2001-03-28 10:58:57
Are you trying to use or develop templates on a Slackware 7.1 (or older) Linux
system? You may find the following helpful:
A friend I'm working with sent me some brand-new cross-platform code that he
said compiled on all kinds of machines and even under some compilers that it
didn't used to work with, and I decided it would be a good time to get my
current project up on Linux after working with it on the Mac OS.
I'm using Slackware 7.1; it is the currently shipping Slackware.
"Slackware-current" is not, despite the name, the currently-shipping version,
it is the current snapshot of the next release to come. This will be Slackware
7.2, but the packages aren't all built or tested yet and it will probably be
at least a few weeks until it is released.
I found a compile error where gcc complained of a reference to a reference
when instantiating a template in Andy's new code. I called and asked about
this code (it was newly added) and he said it worked fine for him under the
gcc on Mandrake Linux as well as CodeWarrior Pro 6 for Mac OS and Windows.
Reading the problem code we couldn't see why it should have had that error; it
really looked like the compiler was making the wrong choice of which
overloaded constructor to pass some parameters to, and with the wrong choice
the parameters as given would cause an error
After much discussion we figured out _he_ had gcc 2.95.3, while I had gcc
2.91.66. I've noticed that Slackware tends to run software that's a little
older, but perhaps not as old as Debian.
Updating gcc to 2.95.3 from the packages provided in slackware-current fixed
my compile problem. I'm still working on getting my application to compile,
but it seems to be going OK. I've compiled many new files, some of which have
some pretty complex code in them.
When I get that to work I'll try building the linux kernel with the new
compiler, booting off it, and building the kernel again and booting off
_that_. That should be a good test that the compiler was built right, at the
small risk of eating my machine.
Downloading and installing the slackware packages sure beats building it from
source, which I've done a few times before.
You can browse the versions of the packages provided in different releases,
and what's currently available for download in slackware-current, at this page:
http://www.slackware.com/packages/
there appears to be some confusion though as both egcs and gcc are listed for
slackware-current, I think what you want is gcc, and gcc 2.95.3 is provided in:
The gcc package description says you also want binutils.tgz, gmake.tgz,
glibc.tgz, and linuxinc.tgz. Linuxinc.tgz is the linux kernel header files
from 2.2.18; you probably don't want to update those unless you _also_ install
the new kernel. You probably could get away without gmake but it's small to
download; you definitily want binutils because it's got the stuff like the
assembler in it.
Glibc is quite a large download (29 MB) so you might be tempted to skip it,
but the other programs won't run without this version.
I suggest installing it after booting off the installation CD and mounting
your root partition in /mnt because your running system will have programs
that depend on the prior version; uninstalling the old one on a running
machine will probably have unpleasant results.
Mike
-- Michael D. Crawford GoingWare Inc. - Expert Software Development and Consulting http://www.goingware.com/ crawford_at_[hidden] Tilting at Windmills for a Better Tomorrow.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk