C++ in jemalloc
Mark Millard
markmi at dsl-only.net
Sat Oct 7 08:10:46 UTC 2017
[I'm adding examples with output from clang -v since it explicitly shows
the path used for ld and such.]
On 2017-Oct-7, at 12:58 AM, Mark Millard <markmi at dsl-only.net> wrote:
> On 2017-Oct-6, at 11:42 PM, Roman Divacky <rdivacky at vlakno.cz> wrote:
>
>> Just to clarify my not agreeing with Mark regarding EH on ppc64.
>>
>> Last time I tried to fix ppc64 exceptions handling as generated by clang
>> it turned out that simply using gnu ld from ports fixes the issue.
>>
>> For details see:
>> https://lists.freebsd.org/pipermail/freebsd-toolchain/2017-May/002961.html
>
> Unfortunately my experiments failed to confirm this. Repeating
> them now under head -r324071 and ports -r450478 :
>
> # more exception_test.cpp
> #include <exception>
>
> int main(void)
> {
> try { throw std::exception(); }
> catch (std::exception& e) {}
> return 0;
> }
>
> # clang++ -B /usr/local/powerpc64-freebsd/bin -std=c++14 -g -O2 exception_test.cpp
>
> # ./a.out
> Segmentation fault (core dumped)
>
> # clang++ -B /usr/local/powerpc64-freebsd/bin -std=c++11 -g exception_test.cpp
>
> # ./a.out
> Segmentation fault (core dumped)
# clang++ -v -B /usr/local/powerpc64-freebsd/bin -std=c++11 -g exception_test.cpp
FreeBSD clang version 5.0.0 (tags/RELEASE_500/final 312559) (based on LLVM 5.0.0svn)
Target: powerpc64-unknown-freebsd12.0
Thread model: posix
InstalledDir: /usr/bin
"/usr/bin/clang++" -cc1 -triple powerpc64-unknown-freebsd12.0 -emit-obj -mrelax-all -disable-free -main-file-name exception_test.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -mconstructor-aliases -target-cpu ppc64 -mfloat-abi hard -v -dwarf-column-info -debug-info-kind=standalone -dwarf-version=2 -debugger-tuning=gdb -resource-dir /usr/lib/clang/5.0.0 -internal-isystem /usr/include/c++/v1 -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /root/c_tests -ferror-limit 19 -fmessage-length 200 -fno-signed-char -fobjc-runtime=gnustep -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/exception_test-ba79a4.o -x c++ exception_test.cpp
clang -cc1 version 5.0.0 based upon LLVM 5.0.0svn default target powerpc64-unknown-freebsd12.0
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/v1
/usr/lib/clang/5.0.0/include
/usr/include
End of search list.
"/usr/local/powerpc64-freebsd/bin/ld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --enable-new-dtags -o a.out /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib /tmp/exception_test-ba79a4.o -lc++ -lm -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
# ./a.out
Segmentation fault (core dumped)
> # ls -lt /usr/local/powerpc64-freebsd/bin
> total 56704
> lrwxr-xr-x 1 root wheel 32 Jul 2 19:27 size -> ../../bin/powerpc64-freebsd-size
> -r-xr-xr-x 4 root wheel 7072791 Jul 2 19:27 ld
> -r-xr-xr-x 4 root wheel 7072791 Jul 2 19:27 ld.bfd
> -r-xr-xr-x 2 root wheel 6881822 Jul 2 19:27 as
> -r-xr-xr-x 2 root wheel 6128889 Jul 2 19:27 strip
> -r-xr-xr-x 2 root wheel 5253417 Jul 2 19:27 nm
> -r-xr-xr-x 2 root wheel 1284139 Jul 2 19:27 readelf
> -r-xr-xr-x 2 root wheel 6128882 Jul 2 19:27 objcopy
> -r-xr-xr-x 2 root wheel 5384166 Jul 2 19:27 ranlib
> -r-xr-xr-x 2 root wheel 5384159 Jul 2 19:27 ar
> -r-xr-xr-x 2 root wheel 6914775 Jul 2 19:27 objdump
>
> # clang++ -B /usr/local/powerpc64-portbld-freebsd12.0/bin/ -std=c++14 -g -O2 exception_test.cpp
>
> # ./a.out
> Segmentation fault (core dumped)
# clang++ -v -B /usr/local/powerpc64-portbld-freebsd12.0/bin/ -std=c++14 -g -O2 exception_test.cpp
FreeBSD clang version 5.0.0 (tags/RELEASE_500/final 312559) (based on LLVM 5.0.0svn)
Target: powerpc64-unknown-freebsd12.0
Thread model: posix
InstalledDir: /usr/bin
"/usr/bin/clang++" -cc1 -triple powerpc64-unknown-freebsd12.0 -emit-obj -disable-free -main-file-name exception_test.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -mconstructor-aliases -target-cpu ppc64 -mfloat-abi hard -v -dwarf-column-info -debug-info-kind=standalone -dwarf-version=2 -debugger-tuning=gdb -resource-dir /usr/lib/clang/5.0.0 -internal-isystem /usr/include/c++/v1 -O2 -std=c++14 -fdeprecated-macro -fdebug-compilation-dir /root/c_tests -ferror-limit 19 -fmessage-length 200 -fno-signed-char -fobjc-runtime=gnustep -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o /tmp/exception_test-3ebf72.o -x c++ exception_test.cpp
clang -cc1 version 5.0.0 based upon LLVM 5.0.0svn default target powerpc64-unknown-freebsd12.0
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/v1
/usr/lib/clang/5.0.0/include
/usr/include
End of search list.
"/usr/local/powerpc64-portbld-freebsd12.0/bin/ld" --eh-frame-hdr -dynamic-linker /libexec/ld-elf.so.1 --enable-new-dtags -o a.out /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/lib /tmp/exception_test-3ebf72.o -lc++ -lm -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/crtend.o /usr/lib/crtn.o
# ./a.out
Segmentation fault (core dumped)
> # clang++ -B /usr/local/powerpc64-portbld-freebsd12.0/bin/ -std=c++11 -g exception_test.cpp
>
> # ./a.out
> Segmentation fault (core dumped)
>
>
> # ls -lt /usr/local/powerpc64-portbld-freebsd12.0/bin/
> total 363584
> -r-xr-xr-x 4 root wheel 59993201 Jul 2 23:44 ld
> -r-xr-xr-x 4 root wheel 59993201 Jul 2 23:44 ld.bfd
> -r-xr-xr-x 2 root wheel 29843304 Jul 2 23:44 as
> -r-xr-xr-x 2 root wheel 29046519 Jul 2 23:44 strip
> -r-xr-xr-x 2 root wheel 28207257 Jul 2 23:44 nm
> -r-xr-xr-x 2 root wheel 1178483 Jul 2 23:44 readelf
> -r-xr-xr-x 1 root wheel 28329180 Jul 2 23:44 dlltool
> -r-xr-xr-x 2 root wheel 29046512 Jul 2 23:44 objcopy
> -r-xr-xr-x 2 root wheel 28334599 Jul 2 23:44 ranlib
> -r-xr-xr-x 2 root wheel 28334592 Jul 2 23:44 ar
> -r-xr-xr-x 2 root wheel 49540244 Jul 2 23:44 objdump
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-current
mailing list