[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem to compile gnustep-base on android
From: |
David Chisnall |
Subject: |
Re: Problem to compile gnustep-base on android |
Date: |
Sat, 26 Sep 2015 09:59:02 +0100 |
On 26 Sep 2015, at 08:42, Germán Arias <germanandre@gmx.es> wrote:
>
> El sáb, 26-09-2015 a las 07:50 +0100, Richard Frith-Macdonald escribió:
>>> On 26 Sep 2015, at 07:28, Germán Arias <germanandre@gmx.es> wrote:
>>>
>>> El vie, 25-09-2015 a las 21:27 -0600, Germán Arias escribió:
>>>> First I'm using libobjc2 from github repository. Also I'm using an arm
>>>> toolchain with clang 3.6 (ndk r10e). And, after applied the changes
>>>> suggested by Ivan, I get this error when try to link the subproject
>>>> Additions:
>>>>
>>>> Linking subproject Additions ...
>>>> /home/german/Instalados/android-toolchains/my-android-toolchain/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld:
>>>> fatal error: -pie and -r are incompatible
>>>> clang36: error: linker command failed with exit code 1 (use -v to see
>>>> invocation)
>>>> make[4]: *** [obj/subproject.o] Error 1
>>>> make[3]: *** [internal-subproject-all_] Error 2
>>>> make[2]: *** [Additions.all.subproject.variables] Error 2
>>>> make[1]: *** [internal-all] Error 2
>>>> make: *** [internal-all] Error 2
>>>>
>>>> Any suggestion?
>>>>
>>>> Thanks
>>>> Germán
>>>
>>> Where should be added the -v option to see the invocations?
>>
>> I’d start by using messages=yes to see the invocation of clang by the make
>> system.
>> If you look at how clang is being invoked, you might get a clue as to where
>> adding the -v might get clang to tell you what it’s doing.
>> In the absence of any concrete knowledge about it (and without bothering to
>> read any online help about clang), I’d probably try the -v in the command
>> line iimmediately after 'clang'
>>
>>
>
> Thanks, messages=yes did the job. This is the invocation:
>
> clang -nostdlib -Wl,-r -o ./obj/subproject.o
> obj/Additions.obj/GSTypeEncoding.c.o obj/Additions.obj/GSObjCRuntime.m.o
> obj/Additions.obj/GCObject.m.o obj/Additions.obj/GCArray.m.o
> obj/Additions.obj/GCDictionary.m.o obj/Additions.obj/GSLock.m.o
> obj/Additions.obj/GSMime.m.o obj/Additions.obj/GSXML.m.o
> obj/Additions.obj/GSFunctions.m.o
> obj/Additions.obj/GSInsensitiveDictionary.m.o obj/Additions.obj/NSArray
> +GNUstepBase.m.o obj/Additions.obj/NSAttributedString+GNUstepBase.m.o
> obj/Additions.obj/NSBundle+GNUstepBase.m.o
> obj/Additions.obj/NSCalendarDate+GNUstepBase.m.o
> obj/Additions.obj/NSData+GNUstepBase.m.o obj/Additions.obj/NSDebug
> +GNUstepBase.m.o obj/Additions.obj/NSError+GNUstepBase.m.o
> obj/Additions.obj/NSHashTable+GNUstepBase.m.o
> obj/Additions.obj/NSFileHandle+GNUstepBase.m.o obj/Additions.obj/NSLock
> +GNUstepBase.m.o obj/Additions.obj/NSMutableString+GNUstepBase.m.o
> obj/Additions.obj/NSNumber+GNUstepBase.m.o obj/Additions.obj/NSObject
> +GNUstepBase.m.o obj/Additions.obj/NSPropertyList+GNUstepBase.m.o
> obj/Additions.obj/NSProcessInfo+GNUstepBase.m.o
> obj/Additions.obj/NSStream+GNUstepBase.m.o obj/Additions.obj/NSString
> +GNUstepBase.m.o obj/Additions.obj/NSTask+GNUstepBase.m.o
> obj/Additions.obj/NSThread+GNUstepBase.m.o obj/Additions.obj/NSURL
> +GNUstepBase.m.o obj/Additions.obj/Unicode.m.o ;
Try adding -### to the end of the clang invocation and you will see how it is
invoking the linker. It may be that it always adds -pie for the Android target
(which would be a clang bug when linking things that are not programs).
GNUstep is pretty unusual in using ld -r[1], so this is probably something
that’s not well tested.
David
[1] Which is not a bad thing - ld -r should be used in most places where ar is
used.
-- Sent from my PDP-11