Re: FreeBSD 12.2 cannot build back

2020-11-08 Thread Riccardo Mottola
Hi David,

David Chisnall wrote:
> On 30/10/2020 18:31, Riccardo Mottola wrote:
>> I wonder if this is a gnustep-make issue or a project issue?
>
> My guess is a -make issue.  I suspect a newer LLD is more aggressive
> about rejecting incompatible options than older linkers.
>
>> Where are -r and -rdynamic coming from? I found nothing therelike in
>> gsc's subproject itself.
>
> -r is from the subproject makefile.  Subprojects are linked as a .o
> file that is then subsequently linked into the final binary, which
> requires -r.
>
> I believe -rdynamic is added globally because it's necessary for
> dladdr to give useful outputs on most ELF platforms, which is
> essential for pretty back traces.  We probably need to explicitly
> remove it from LDFLAGS in the subproject things in -make (it's only
> meaningful when producing a fully linked output). 

Your explanation sounds reasonable. I don't know how to filter out
something in subprojects, but to test your hypothesis I edited
"target.make" in the FreeBSD section and just removed rdynamic globally
and back finishes compiling.
A quick test shows also that most applications do work!

Riccardo



Re: FreeBSD 12.2 cannot build back

2020-11-06 Thread David Chisnall

On 30/10/2020 18:31, Riccardo Mottola wrote:

I wonder if this is a gnustep-make issue or a project issue?


My guess is a -make issue.  I suspect a newer LLD is more aggressive 
about rejecting incompatible options than older linkers.


Where are -r and -rdynamic coming from? I found nothing therelike in 
gsc's subproject itself.


-r is from the subproject makefile.  Subprojects are linked as a .o file 
that is then subsequently linked into the final binary, which requires -r.


I believe -rdynamic is added globally because it's necessary for dladdr 
to give useful outputs on most ELF platforms, which is essential for 
pretty back traces.  We probably need to explicitly remove it from 
LDFLAGS in the subproject things in -make (it's only meaningful when 
producing a fully linked output).


David