fivemack: (Default)
Tom Womack ([personal profile] fivemack) wrote2007-06-04 05:32 pm

Two Linux frustrations

We've just got a new machine at work on which I've been asked to install OpenSuSE 10.2 64-bit; this felt entirely straightforward.

Unfortunately, the default install of OpenSuSE doesn't include gcc. When I try installing gcc using YaST2, I get something which looks superficially like gcc, but which says 'gcc: error trying to exec 'cc1': execvp: No such file or directory' whenever I try to compile anything with it.

So, where's cc1 coming from? Deciding now would be a good time to use up some of the EU Assorted Symbol Mountain, I type

for i in /media/SU1020.001/suse/x86_64/*.rpm; do rpm -qpl $i | sed -e "s/^/${i//\//_}/g" | grep cc1; done

which tells me that /usr/lib64/gcc/x86_64-suse-linux/4.1.2/cc1 is provided by cpp41-4.1.2_20061115-5.x86_64.rpm

And indeed /usr/lib64/gcc/x86_64-suse-linux/4.1.2/cc1 exists on the machine. So, why isn't /usr/bin/gcc-4.1 finding it?

Normally strace comes to the rescue, but 'strace /usr/bin/gcc-4.1 -c foo.c' outputs many lines of the form

stat64(0x806b628, 0xff885abc) = -1 ENOENT (No such file or directory)

which are totally useless because strace is failing to dereference the pointer to the filename passed to stat64.

[identity profile] fivemack.livejournal.com 2007-06-05 02:48 pm (UTC)(link)
I reinstalled the OS, asking for development tools when you got to configure the software setup, and now it works.

Sorry, that's the least useful possible resolution to this problem, but I lack the brain and the time to concoct a better.

[identity profile] jojomojo.livejournal.com 2007-06-05 02:52 pm (UTC)(link)
Hey, it's not like I'm too worried, my day job mostly involves QNX (and XP on the desktop) ;)