[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Building 4.0.3 with local gcc on Linux
From: |
Toby Darling |
Subject: |
Re: Building 4.0.3 with local gcc on Linux |
Date: |
Tue, 20 Sep 2016 13:28:17 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 |
Hi Mike
I'm trying to build 4.0.3 with a local version of gcc. The build succeeds
but octave fails to start:
address@hidden: ./run-octave
/tmp/toby/octave-build/src/.libs/lt-octave-gui: /usr/lib64/libstdc++.so.6:
version `GLIBCXX_3.4.15' not found (required by
/tmp/toby/octave-build/libgui/.libs/liboctgui.so.1)
The problem is, I can't figure out how to make octave/libtool use the
libraries from my gcc installation rather than the system ones. I've tried
setting LD_LIBRARY_PATH, LD_RUN_PATH, even GCC_EXEC_PREFIX to no avail.
Host is Scientific Linux 6.7 (RHEL)
Linux max.lmb.internal 2.6.32-573.12.1.el6.x86_64 #1 SMP Tue Dec 15 08:24:23
CST 2015 x86_64 x86_64 x86_64 GNU/Linux
address@hidden: which gcc; gcc --version
/public/gcc/4_8_3/bin/gcc
gcc (GCC) 4.8.3
Any pointers much appreciated. Many thanks.
LD_LIBRARY_PATH is the correct variable to use. The above message
references /usr/lib64/libstdc++.so.6, so LD_LIBRARY_PATH either wasn't
set or wasn't correct.
Thanks for confirming. This is what's confusing me:
address@hidden: find ${LD_LIBRARY_PATH//:/ } -name libstdc++.so* -ls
23659861 6412 -rwxr-xr-x 1 toby toby 6472019 Sep 19 13:35
/public/gcc/4_8_3/lib64/libstdc++.so.6.0.19
23659869 7 -rw-r--r-- 1 toby toby 2327 Sep 19 13:35
/public/gcc/4_8_3/lib64/libstdc++.so.6.0.19-gdb.py
23659863 0 lrwxrwxrwx 1 toby toby 19 Sep 19 13:35
/public/gcc/4_8_3/lib64/libstdc++.so -> libstdc++.so.6.0.19
23659862 0 lrwxrwxrwx 1 toby toby 19 Sep 19 13:35
/public/gcc/4_8_3/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
23660561 7 -rw-r--r-- 1 toby toby 2325 Sep 19 13:35
/public/gcc/4_8_3/lib/libstdc++.so.6.0.19-gdb.py
23660555 0 lrwxrwxrwx 1 toby toby 19 Sep 19 13:35
/public/gcc/4_8_3/lib/libstdc++.so -> libstdc++.so.6.0.19
23660553 5132 -rwxr-xr-x 1 toby toby 5164587 Sep 19 13:35
/public/gcc/4_8_3/lib/libstdc++.so.6.0.19
23660554 0 lrwxrwxrwx 1 toby toby 19 Sep 19 13:35
/public/gcc/4_8_3/lib/libstdc++.so.6 -> libstdc++.so.6.0.19
address@hidden: file /public/gcc/4_8_3/lib64/libstdc++.so.6.0.19
/public/gcc/4_8_3/lib64/libstdc++.so.6.0.19: ELF 64-bit LSB shared
object, x86-64, version 1 (SYSV), dynamically linked, not stripped
I've tried 'strace -f -o run.log ./run-octave' and interestingly it does
look at my libstdc++, but then goes on and tries to use the system version:
26608 open("/public/gcc/4_8_3/lib64/libstdc++.so.6", O_RDONLY) = 3
26608 read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\256\5\0\0\0\0\0"...,
832) = 832
26608 fstat(3, {st_mode=S_IFREG|0755, st_size=6472019, ...}) = 0
26608 mmap(NULL, 3179776, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f8375edb000
26608 mprotect(0x7f8375fc6000, 2093056, PROT_NONE) = 0
26608 mmap(0x7f83761c5000, 40960, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xea000) = 0x7f83761c5000
26608 mmap(0x7f83761cf000, 83200, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f83761cf000
26608 close(3) = 0
...
26800 open("/usr/lib64/libstdc++.so.6", O_RDONLY) = 3
26800 read(3,
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360c\245\2012\0\0\0"...,
832) = 832
26800 fstat(3, {st_mode=S_IFREG|0755, st_size=989840, ...}) = 0
26800 mmap(0x3281a00000, 3166648, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3281a00000
26800 mprotect(0x3281ae8000, 2097152, PROT_NONE) = 0
26800 mmap(0x3281ce8000, 36864, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe8000) = 0x3281ce8000
26800 mmap(0x3281cf1000, 82360, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3281cf1000
26800 close(3) = 0
I've rechecked the 'make check' output in my libsdtc++ build and there
are no unexpected failures.
Cheers
Toby
--
Toby Darling, Scientific Computing (2N249)
MRC Laboratory of Molecular Biology
Francis Crick Avenue
Cambridge Biomedical Campus
Cambridge CB2 0QH
Phone 01223 267070