help-octave
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]