[MacPorts] #38783: clang-3.3 @3.3-r173279 can't link a C++ program with -fsanitize=memory
MacPorts
noreply at macports.org
Fri Apr 12 17:31:07 PDT 2013
#38783: clang-3.3 @3.3-r173279 can't link a C++ program with -fsanitize=memory
-------------------------------+--------------------------------
Reporter: andrew.c.morrow@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.1.3
Keywords: | Port: clang-3.3
-------------------------------+--------------------------------
Clang version:
{{{
> /opt/local/bin/clang++-mp-3.3 --version
clang version 3.3 (trunk 173279)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
}}}
Program:
{{{
> cat ./hello_world.cpp
#include <cstdlib>
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "Hello, World!\n" << argc;
return EXIT_SUCCESS;
}
}}}
Trying to compile with memory sanitizer leads to linking errors:
{{{
> /opt/local/bin/clang++-mp-3.3 hello_world.cpp -fsanitize=memory
Undefined symbols for architecture x86_64:
"___msan_init", referenced from:
anon in hello_world-Rm3beR.o
"___msan_param_tls", referenced from:
_main in hello_world-Rm3beR.o
___cxx_global_var_init in hello_world-Rm3beR.o
"___msan_retval_tls", referenced from:
_main in hello_world-Rm3beR.o
___cxx_global_var_init in hello_world-Rm3beR.o
ld: symbol(s) not found for architecture x86_64
}}}
Output with -###
{{{
> /opt/local/bin/clang++-mp-3.3 hello_world.cpp -fsanitize=memory -###
clang version 3.3 (trunk 173279)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
"/opt/local/libexec/llvm-3.3/bin/clang" "-cc1" "-triple" "x86_64-apple-
macosx10.8.0" "-emit-obj" "-mrelax-all" "-disable-free" "-main-file-name"
"hello_world.cpp" "-mrelocation-model" "pic" "-pic-level" "2" "-mdisable-
fp-elim" "-masm-verbose" "-munwind-tables" "-target-cpu" "core2" "-target-
linker-version" "134.9" "-resource-dir"
"/opt/local/libexec/llvm-3.3/bin/../lib/clang/3.3" "-fmodule-cache-path"
"/var/folders/n4/y_lrzpxd3n99l4frqx4m8llw0000gt/T/clang-module-cache"
"-fdeprecated-macro" "-fdebug-compilation-dir"
"/Users/andrew/Documents/10gen/dev/src/experiments/hello_world" "-ferror-
limit" "19" "-fmessage-length" "167" "-fsanitize=memory" "-stack-
protector" "1" "-mstackrealign" "-fblocks" "-fobjc-runtime=macosx-10.8.0"
"-fobjc-dispatch-method=mixed" "-fobjc-default-synthesize-properties"
"-fencode-extended-block-signature" "-fcxx-exceptions" "-fexceptions"
"-fdiagnostics-show-option" "-fcolor-diagnostics" "-backend-option"
"-vectorize-loops" "-o" "/var/folders/n4/y_lrzpxd3n99l4frqx4m8llw0000gt/T
/hello_world-w9vsQc.o" "-x" "c++" "hello_world.cpp"
"/opt/local/libexec/llvm-3.3/bin/ld" "-demangle" "-dynamic" "-arch"
"x86_64" "-macosx_version_min" "10.8.0" "-o" "a.out"
"/var/folders/n4/y_lrzpxd3n99l4frqx4m8llw0000gt/T/hello_world-w9vsQc.o"
"-lstdc++" "-lSystem"
"/opt/local/libexec/llvm-3.3/bin/../lib/clang/3.3/lib/darwin/libclang_rt.osx.a"
}}}
Output with -v:
{{{
> /opt/local/bin/clang++-mp-3.3 hello_world.cpp -fsanitize=memory -v
clang version 3.3 (trunk 173279)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
"/opt/local/libexec/llvm-3.3/bin/clang" -cc1 -triple x86_64-apple-
macosx10.8.0 -emit-obj -mrelax-all -disable-free -main-file-name
hello_world.cpp -mrelocation-model pic -pic-level 2 -mdisable-fp-elim
-masm-verbose -munwind-tables -target-cpu core2 -target-linker-version
134.9 -v -resource-dir /opt/local/libexec/llvm-3.3/bin/../lib/clang/3.3
-fmodule-cache-path /var/folders/n4/y_lrzpxd3n99l4frqx4m8llw0000gt/T
/clang-module-cache -fdeprecated-macro -fdebug-compilation-dir
/Users/andrew/Documents/10gen/dev/src/experiments/hello_world -ferror-
limit 19 -fmessage-length 167 -fsanitize=memory -stack-protector 1
-mstackrealign -fblocks -fobjc-runtime=macosx-10.8.0 -fobjc-dispatch-
method=mixed -fobjc-default-synthesize-properties -fencode-extended-block-
signature -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-
diagnostics -backend-option -vectorize-loops -o
/var/folders/n4/y_lrzpxd3n99l4frqx4m8llw0000gt/T/hello_world-QdWhjz.o -x
c++ hello_world.cpp
clang -cc1 version 3.3 based upon LLVM 3.3svn default target x86_64-apple-
darwin12.3.0
ignoring nonexistent directory "/usr/include/c++/4.2.1/i686-apple-
darwin10/x86_64"
ignoring nonexistent directory "/usr/include/c++/4.0.0"
ignoring nonexistent directory "/usr/include/c++/4.0.0/i686-apple-
darwin8/"
ignoring nonexistent directory "/usr/include/c++/4.0.0/backward"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.2.1
/usr/include/c++/4.2.1/backward
/usr/local/include
/opt/local/libexec/llvm-3.3/bin/../lib/clang/3.3/include
/usr/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
End of search list.
"/opt/local/libexec/llvm-3.3/bin/ld" -demangle -dynamic -arch x86_64
-macosx_version_min 10.8.0 -o a.out
/var/folders/n4/y_lrzpxd3n99l4frqx4m8llw0000gt/T/hello_world-QdWhjz.o
-lstdc++ -lSystem
/opt/local/libexec/llvm-3.3/bin/../lib/clang/3.3/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
"___msan_init", referenced from:
anon in hello_world-QdWhjz.o
"___msan_param_tls", referenced from:
_main in hello_world-QdWhjz.o
___cxx_global_var_init in hello_world-QdWhjz.o
"___msan_retval_tls", referenced from:
_main in hello_world-QdWhjz.o
___cxx_global_var_init in hello_world-QdWhjz.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
}}}
--
Ticket URL: <https://trac.macports.org/ticket/38783>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list