discuss-gnustep
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]