2015-09-17 2 views
0

Вид, связанный с моим другим вопросом here, так как это также касается строительства llvm.Почему можно создать другой объектный файл, чем тот, который был скопирован и введен вручную?

При попытке обойти неудачи сборки в LLVM, я заметил следующее:

Выход в терминале при создании одного файла объекта через make:

rp% make asan_posix.o 
cd /tmp/llvm20150917-93899-y384cu && /Applications/Xcode-beta.app/Contents/Developer/usr/bin/make -f projects/compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.iossim.dir/build.make projects/compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o 
Building CXX object projects/compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o 
cd /tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan && /usr/local/Library/ENV/4.3/clang++ -DASAN_DYNAMIC=1 -DASAN_HAS_EXCEPTIONS=1 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-y384cu/include -I/tmp/llvm20150917-93899-1jg6jdx/include -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/.. -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -arch i386 -arch x86_64 -UNDEBUG -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -stdlib=libc++ -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.1.sdk -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fvisibility=hidden -fno-function-sections -fno-lto -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -Wno-non-virtual-dtor -fno-rtti -ftls-model=initial-exec -o CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o -c /tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/asan_posix.cc 
cd /tmp/llvm20150917-93899-y384cu && /Applications/Xcode-beta.app/Contents/Developer/usr/bin/make -f projects/compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.osx.dir/build.make projects/compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o 
Building CXX object projects/compiler-rt/lib/asan/CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o 
cd /tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan && /usr/local/Library/ENV/4.3/clang++ -DASAN_DYNAMIC=1 -DASAN_HAS_EXCEPTIONS=1 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-y384cu/include -I/tmp/llvm20150917-93899-1jg6jdx/include -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/.. -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -arch i386 -arch x86_64 -UNDEBUG -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.9 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fvisibility=hidden -fno-function-sections -fno-lto -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -Wno-non-virtual-dtor -fno-rtti -ftls-model=initial-exec -o CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o -c /tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/asan_posix.cc 


rp% file CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o 
CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o: Mach-O 64-bit object x86_64 
rp% file CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o 
CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o: Mach-O 64-bit object x86_64 

Output, когда одни и те же команды вводятся вручную:

rp% cd /tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan && /usr/local/Library/ENV/4.3/clang++ -DASAN_DYNAMIC=1 -DASAN_HAS_EXCEPTIONS=1 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-y384cu/include -I/tmp/llvm20150917-93899-1jg6jdx/include -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/.. -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -arch i386 -arch x86_64 -UNDEBUG -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -stdlib=libc++ -mios-simulator-version-min=7.0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.1.sdk -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fvisibility=hidden -fno-function-sections -fno-lto -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -Wno-non-virtual-dtor -fno-rtti -ftls-model=initial-exec -o CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o -c /tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/asan_posix.cc 
rp% cd /tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan && /usr/local/Library/ENV/4.3/clang++ -DASAN_DYNAMIC=1 -DASAN_HAS_EXCEPTIONS=1 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/tmp/llvm20150917-93899-y384cu/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan -I/tmp/llvm20150917-93899-y384cu/include -I/tmp/llvm20150917-93899-1jg6jdx/include -I/tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/.. -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -arch i386 -arch x86_64 -UNDEBUG -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -std=c++11 -Wall -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.9 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fvisibility=hidden -fno-function-sections -fno-lto -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -Wno-non-virtual-dtor -fno-rtti -ftls-model=initial-exec -o CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o -c /tmp/llvm20150917-93899-1jg6jdx/projects/compiler-rt/lib/asan/asan_posix.cc 


rp% file CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o 
CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o: Mach-O universal binary with 2 architectures 
CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o (for architecture i386): Mach-O object i386 
CMakeFiles/RTAsan_dynamic.iossim.dir/asan_posix.cc.o (for architecture x86_64): Mach-O 64-bit object x86_64 
rp% file CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o 
CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o: Mach-O universal binary with 2 architectures 
CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o (for architecture i386): Mach-O object i386 
CMakeFiles/RTAsan_dynamic.osx.dir/asan_posix.cc.o (for architecture x86_64): Mach-O 64-bit object x86_64 

Поиск Я действительно не помог; Я сам не писал makefile (созданный cmake), и, по крайней мере, для моих глаз не было причины для make напечатать что-то, что оно не выполнялось.

У кого-нибудь есть идеи, что происходит?


шаги Размножение:

  • установить доморощенного, если он еще не установлен
  • заменить LLVM формулу доморощенного с в WIP один here
  • Run brew install llvm --with-clang --with-lldb --verbose --debug
  • ждать для сборки в сбой и спросите вас, что делать
  • Откажитесь от отладочной оболочки
  • кд в projects/compiler-rt/lib/asan
  • запустить make clean
  • запустить make asan_posix.o (или любой из других *.o файлов, перечисленных в make help
  • перспективе file на выходном файле (в CMakeFiles/RTAsan_dynamic.(osx|iossim).dir/asan_posix.cc.o для меня)
  • Повторите вышеописанные 3 шага , но скопируйте вместо этого команду make

Редактировать: Ссылка на мой environment в оболочке и во время процесса make.

+2

Вероятно, ваш '/ usr/local/Library/ENV/4.3/clang ++' обращается к некоторым переменным среды, которые перезаписываются через процесс make. Вы можете запустить 'env> shell.log' в оболочке, а затем снова (с'> make.log') в рецепте make прямо перед сборкой и посмотреть, что отличается между ними. – John

+0

@ Джон Хммм, не знал, что это возможно. Попробовал и добавил ссылку на суть, содержащую среду в оболочке и непосредственно перед вызовом сборки. Также получил среду сразу после сборки, но она была такой же, как и перед сборкой. – awksp

+0

Ничто не выглядит особенно неуместным для меня, но это очень возможно, я просто не вижу/не признаю важные ... И будут ли переменные среды переопределять флаги командной строки? – awksp

ответ

0

Решение этого вопроса закончилось тем же, что и связанный с ним вопрос. homebrew менял флаги компилятора, поэтому команды, которые были напечатаны, не были исполняемыми. Исправление в другом вопросе также произошло, чтобы исправить это.

Смежные вопросы