Message: 2 Date: Mon, 23 Jun 2008 20:11:29 +0200 From: Adam Lackorzynski adam@os.inf.tu-dresden.de Subject: Re: Problem with compiling Fiasco L4 on Suse To: l4-hackers@os.inf.tu-dresden.de Message-ID: 20080623181129.GA4604@os.inf.tu-dresden.de Content-Type: text/plain; charset=iso-8859-1
Hi,
On Mon Jun 23, 2008 at 16:20:04 +0200, Stefan K?gel wrote:
first of all thanks for your great help. I've never seen such an active and fast response.
Now to my problem:
I recently switched to OpenSuse 11 and tried to compile the whole L4 Tree using make -C l4 O=~/my-l4-build oldconfig make O=~/my-l4-build/
While doing so make stops with:
make[5]: Entering directory `/Fiasco/svn/tudos/dice/lib/debug' /bin/bash ../../libtool --tag=CXX --mode=link g++ -g -O2 -module -version-number 0:3:0 -o libdice-debug.la -rpath /home/drops/lib/dice init.lo BETrace.lo L4BETrace.lo L4V4BETrace.lo g++ -shared -nostdlib /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.2.3/crtbeginS.o .libs/init.o .libs/BETrace.o .libs/L4BETrace.o .libs/L4V4BETrace.o -L/usr/lib/gcc/i486-linux-gnu/4.2.3 -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/i486-linux-gnu/4.2.3/crtendS.o /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/crtn.o -Wl,-soname -Wl,libdice-debug.so.0 -o .libs/libdice-debug.so.0.3.0 g++: /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/crti.o: No such file or directory g++: /usr/lib/gcc/i486-linux-gnu/4.2.3/crtbeginS.o: No such file or directory g++: /usr/lib/gcc/i486-linux-gnu/4.2.3/crtendS.o: No such file or directory g++: /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/crtn.o: No such file or directory
A "locate crtn.o crti.o crtbeginS.o crtendS.o" returns
"/usr/lib/crti.o /usr/lib/crtn.o /usr/lib/gcc/i586-suse-linux/4.1.3/crtbeginS.o /usr/lib/gcc/i586-suse-linux/4.1.3/crtendS.o"
How can I tell "make" to use these files, instead of "/usr/lib/gcc/i486-linux-gnu/4.2.3/..."? Or do I need to configure gcc in a different way? Currently this config is in use:
Usually a "make oldconfig" in ~/my-l4-build should regenerate all the paths used in the compile process.
gcc -v Using built-in specs. Target: i586-suse-linux Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.1.3 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --program-suffix=-4.1 --enable-version-specific-runtime-libs --without-system-libunwind --with-cpu=generic --host=i586-suse-linux Thread model: posix gcc version 4.1.3 20080612 (prerelease) (SUSE Linux)
What I find strange is that the default gcc version is 4.1 and not 4.3 what I would suspect when looking at the package repository of version 11.0. Is gcc-4.1 really ok despite the date seems recent? I would not expect a downgrade when the previous version looks like 4.2.3.
Adam
Actually you are right. Suse 11 ships with gcc4.3. I installed gcc4.1 manually. Gcc4.3 generated the same error and I thought I could fix this by using an earlier version of gcc. The building manual states that "version 3.3, 3.4, 4.0, 4.1 or 4.2" of gcc is needed.
Unfortunately "make oldconfig" in ~/my-l4-build does not fix the problem. Still the same error. Should I consider checking out the module again?
Regards, Stefan
On Tue Jun 24, 2008 at 12:25:39 +0200, Stefan Kögel wrote:
Target: i586-suse-linux Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.1.3 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --program-suffix=-4.1 --enable-version-specific-runtime-libs --without-system-libunwind --with-cpu=generic --host=i586-suse-linux Thread model: posix gcc version 4.1.3 20080612 (prerelease) (SUSE Linux)
What I find strange is that the default gcc version is 4.1 and not 4.3 what I would suspect when looking at the package repository of version 11.0. Is gcc-4.1 really ok despite the date seems recent? I would not expect a downgrade when the previous version looks like 4.2.3.
Actually you are right. Suse 11 ships with gcc4.3. I installed gcc4.1 manually. Gcc4.3 generated the same error and I thought I could fix this by using an earlier version of gcc. The building manual states that "version 3.3, 3.4, 4.0, 4.1 or 4.2" of gcc is needed.
4.3 works as well nowadays.
Unfortunately "make oldconfig" in ~/my-l4-build does not fix the problem. Still the same error. Should I consider checking out the module again?
That should not make a difference. Can you go to ~/my-l4-build, do "make V=1 oldconfig" and show the output? Normally, after doing oldconfig, the paths in ~/my-l4-build/Makeconf.bid.local should be updated to the current compiler. Hopefully it can be seen from the output why this might not work.
Adam
l4-hackers@os.inf.tu-dresden.de