[llvm-commits] [llvm] r65517 - in /llvm/trunk: Makefile.rules bindings/ocaml/Makefile.ocaml docs/MakefileGuide.html unittests/Makefile.unittest

Nathan Keynes Nathan.Keynes at Sun.COM
Tue Mar 3 03:43:19 PST 2009


On 03/03/2009, at 5:46 PM, Nick Lewycky wrote:

> Nathan Keynes wrote:
>> On 03/03/2009, at 2:55 PM, Nick Lewycky wrote:
>>
>>> Nathan Keynes wrote:
>>>> On 26/02/2009, at 5:44 PM, Nick Lewycky wrote:
>>>>
>>>>> Author: nicholas
>>>>> Date: Thu Feb 26 01:44:16 2009
>>>>> New Revision: 65517
>>>>>
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=65517&view=rev
>>>>> Log:
>>>>> Remove libtool.
>>>>>
>>>>> Modified:
>>>>>  llvm/trunk/Makefile.rules
>>>>>  llvm/trunk/bindings/ocaml/Makefile.ocaml
>>>>>  llvm/trunk/docs/MakefileGuide.html
>>>>>  llvm/trunk/unittests/Makefile.unittest
>>>>>
>>>>> Modified: llvm/trunk/Makefile.rules
>>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/Makefile.rules?rev=65517&r1=65516&r2=65517&view=diff
>>>> This patch broke Solaris builds (and is currently still broken on
>>>> trunk) -
>>>>
>>>> gmake[1]: Entering directory `/zcratch/sunlabs/nkeynes/llvm-65517/
>>>> utils'
>>>> if [ ! -f TableGen/Makefile ]; then \
>>>>          /zcratch/sunlabs/nkeynes/llvm-65517/autoconf/mkinstalldirs
>>>> TableGen; \
>>>>          /usr/bin/cp /zcratch/sunlabs/nkeynes/llvm-65517/utils/
>>>> TableGen/Makefile TableGen/Makefile; \
>>>>        fi; \
>>>>        gmake -C TableGen all
>>>> gmake[2]: Entering directory `/zcratch/sunlabs/nkeynes/llvm-65517/
>>>> utils/TableGen'
>>>> llvm[2]: Linking Debug executable tblgen
>>>> g++ -I/zcratch/sunlabs/nkeynes/llvm-65517/include -I/zcratch/ 
>>>> sunlabs/
>>>> nkeynes/llvm-65517/utils/TableGen  -D_DEBUG  -include llvm/System/
>>>> Solaris.h -D_GNU_SOURCE -D__STD
>>>> C_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -g -fPIC  -Woverloaded-
>>>> virtual
>>>> -pedantic -Wall -W -Wwrite-strings -Wno-long-long -Wunused -Wno-
>>>> unused-
>>>> parameter  -g  -Wl,-rpath
>>>> -Wl,/zcratch/sunlabs/nkeynes/llvm-65517/Debug/bin -export-dynamic  
>>>> -L/
>>>> zcratch/sunlabs/nkeynes/llvm-65517/Debug/lib -L/zcratch/sunlabs/
>>>> nkeynes/llvm-65517/Debug/lib  -o
>>>> /zcratch/sunlabs/nkeynes/llvm-65517/Debug/bin/tblgen  /zcratch/
>>>> sunlabs/nkeynes/llvm-65517/utils/TableGen/Debug/ 
>>>> AsmWriterEmitter.o /
>>>> zcratch/sunlabs/nkeynes/llvm-b0rke
>>>> d/utils/TableGen/Debug/CallingConvEmitter.o /zcratch/sunlabs/ 
>>>> nkeynes/
>>>> llvm-65517/utils/TableGen/Debug/CodeEmitterGen.o /zcratch/sunlabs/
>>>> nkeynes/llvm-65517/utils/TableG
>>>> en/Debug/CodeGenDAGPatterns.o /zcratch/sunlabs/nkeynes/llvm-65517/
>>>> utils/TableGen/Debug/CodeGenInstruction.o /zcratch/sunlabs/nkeynes/
>>>> llvm-65517/utils/TableGen/Debug/C
>>>> odeGenTarget.o /zcratch/sunlabs/nkeynes/llvm-65517/utils/TableGen/
>>>> Debug/DAGISelEmitter.o /zcratch/sunlabs/nkeynes/llvm-65517/utils/
>>>> TableGen/Debug/FastISelEmitter.o /z
>>>> cratch/sunlabs/nkeynes/llvm-65517/utils/TableGen/Debug/
>>>> InstrEnumEmitter.o /zcratch/sunlabs/nkeynes/llvm-65517/utils/
>>>> TableGen/
>>>> Debug/InstrInfoEmitter.o /zcratch/sunlabs
>>>> /nkeynes/llvm-65517/utils/TableGen/Debug/IntrinsicEmitter.o / 
>>>> zcratch/
>>>> sunlabs/nkeynes/llvm-65517/utils/TableGen/Debug/
>>>> LLVMCConfigurationEmitter.o /zcratch/sunlabs/nkey
>>>> nes/llvm-65517/utils/TableGen/Debug/Record.o /zcratch/sunlabs/
>>>> nkeynes/
>>>> llvm-65517/utils/TableGen/Debug/RegisterInfoEmitter.o /zcratch/
>>>> sunlabs/
>>>> nkeynes/llvm-65517/utils
>>>> /TableGen/Debug/SubtargetEmitter.o /zcratch/sunlabs/nkeynes/
>>>> llvm-65517/
>>>> utils/TableGen/Debug/TGLexer.o /zcratch/sunlabs/nkeynes/llvm-65517/
>>>> utils/TableGen/Debug/TGParse
>>>> r.o /zcratch/sunlabs/nkeynes/llvm-65517/utils/TableGen/Debug/
>>>> TGValueTypes.o /zcratch/sunlabs/nkeynes/llvm-65517/utils/TableGen/
>>>> Debug/TableGen.o /zcratch/sunlabs/nkeyn
>>>> es/llvm-65517/utils/TableGen/Debug/TableGenBackend.o - 
>>>> lLLVMSupport -
>>>> lLLVMSystem \
>>>>           -lpthread -lmalloc -lm -lelf
>>>> ld: fatal: option -dn and -P are incompatible
>>>> ld: fatal: Flags processing errors
>>>> collect2: ld returned 1 exit status
>>>> gmake[2]: *** [/zcratch/sunlabs/nkeynes/llvm-65517/Debug/bin/ 
>>>> tblgen]
>>>> Error 1
>>>> gmake[2]: Leaving directory /zcratch/sunlabs/nkeynes/llvm-65517/
>>>> utils/
>>>> TableGen'
>>>> gmake[1]: *** [TableGen/.makeall] Error 2
>>>> gmake[1]: Leaving directory /zcratch/sunlabs/nkeynes/llvm-65517/
>>>> utils'
>>>> gmake: *** [all] Error 1
>>>>
>>>> Previous version used the following link line:
>>>> g++ -I/zcratch/sunlabs/nkeynes/llvm/include -I/zcratch/sunlabs/
>>>> nkeynes/
>>>> llvm/utils/TableGen -D_DEBUG -include llvm/System/Solaris.h -
>>>> D_GNU_SOURCE -D__STDC_LIMIT_MACROS -
>>>> D__STDC_CONSTANT_MACROS -g -fPIC -Woverloaded-virtual -pedantic -
>>>> Wall -
>>>> W -Wwrite-strings -Wno-long-long -Wunused -Wno-unused-parameter - 
>>>> g -
>>>> o /
>>>> zcratch/sunlabs/nkeynes/ll
>>>> vm/Debug/bin/tblgen /zcratch/sunlabs/nkeynes/llvm/utils/TableGen/
>>>> Debug/
>>>> AsmWriterEmitter.o /zcratch/sunlabs/nkeynes/llvm/utils/TableGen/
>>>> Debug/
>>>> CallingConvEmitter.o /zcrat
>>>> ch/sunlabs/nkeynes/llvm/utils/TableGen/Debug/CodeEmitterGen.o /
>>>> zcratch/
>>>> sunlabs/nkeynes/llvm/utils/TableGen/Debug/CodeGenDAGPatterns.o /
>>>> zcratch/sunlabs/nkeynes/llvm/util
>>>> s/TableGen/Debug/CodeGenInstruction.o /zcratch/sunlabs/nkeynes/ 
>>>> llvm/
>>>> utils/TableGen/Debug/CodeGenTarget.o /zcratch/sunlabs/nkeynes/llvm/
>>>> utils/TableGen/Debug/DAGISelEmitt
>>>> er.o /zcratch/sunlabs/nkeynes/llvm/utils/TableGen/Debug/
>>>> FastISelEmitter.o /zcratch/sunlabs/nkeynes/llvm/utils/TableGen/ 
>>>> Debug/
>>>> InstrEnumEmitter.o /zcratch/sunlabs/nkeynes
>>>> /llvm/utils/TableGen/Debug/InstrInfoEmitter.o /zcratch/sunlabs/
>>>> nkeynes/
>>>> llvm/utils/TableGen/Debug/IntrinsicEmitter.o /zcratch/sunlabs/
>>>> nkeynes/
>>>> llvm/utils/TableGen/Debug/L
>>>> LVMCConfigurationEmitter.o /zcratch/sunlabs/nkeynes/llvm/utils/
>>>> TableGen/Debug/Record.o /zcratch/sunlabs/nkeynes/llvm/utils/ 
>>>> TableGen/
>>>> Debug/RegisterInfoEmitter.o /zcratch
>>>> /sunlabs/nkeynes/llvm/utils/TableGen/Debug/SubtargetEmitter.o /
>>>> zcratch/
>>>> sunlabs/nkeynes/llvm/utils/TableGen/Debug/TGLexer.o /zcratch/ 
>>>> sunlabs/
>>>> nkeynes/llvm/utils/TableGen/
>>>> Debug/TGParser.o /zcratch/sunlabs/nkeynes/llvm/utils/TableGen/ 
>>>> Debug/
>>>> TGValueTypes.o /zcratch/sunlabs/nkeynes/llvm/utils/TableGen/Debug/
>>>> TableGen.o /zcratch/sunlabs/nkeyne
>>>> s/llvm/utils/TableGen/Debug/TableGenBackend.o  -L/zcratch/sunlabs/
>>>> nkeynes/llvm/Debug/lib -lLLVMSupport -lLLVMSystem -lpthread -
>>>> lmalloc -
>>>> lm -lelf -Wl,-R -Wl,/zcratch/sun
>>>> labs/nkeynes/llvm/Debug/bin
>>>>
>>>>
>>>> The problem seems to be in the -Wl,-rpath -Wl,<path> option - the
>>>> Solaris linker needs -Wl,-R -Wl,<path> instead - mklib was  
>>>> converting
>>>> this automatically in previous versions.
>>> Thanks for the diagnosis! I've updated the build system, could you
>>> please try it again and report back whether it works now?
>>
>> Hi Nick,
>>
>>    Thanks for the quick fix. Unfortunately I've now found two other
>> issues with the new build that I missed before -
>>      Firstly, I also need to remove -export-dynamic from the linker
>> flags (I'm led to believe this is actually a libtool option rather
>> than a gcc option?) - I'd thought this was harmless but it also  
>> causes
>> the link to fail.
>
> Does g++ -rdynamic work for you in place of -export-dynamic?

No, -rdynamic isn't recognized either. But, assuming that the intent  
of this is to ensure that all global symbols are dynamically visible,  
no flag is required on Solaris as this is the default case.

Cheers,
Nathan




More information about the llvm-commits mailing list