svn commit: r310789 - head/lib/libpam/static_libpam

Ravi Pokala rpokala at mac.com
Fri Dec 30 20:34:49 UTC 2016


-----Original Message-----
> From: <owner-src-committers at freebsd.org> on behalf of Ed Maste <emaste at freebsd.org>
> Date: 2016-12-30, Friday at 07:39
> To: Ravi Pokala <rpokala at mac.com>
> Cc: Alexander Kabaev <kan at freebsd.org>, "src-committers at freebsd.org" <src-committers at freebsd.org>, "svn-src-all at freebsd.org" <svn-src-all at freebsd.org>, "svn-src-head at freebsd.org" <svn-src-head at freebsd.org>
> Subject: Re: svn commit: r310789 - head/lib/libpam/static_libpam
> 
> On 29 December 2016 at 19:59, Ravi Pokala <rpokala at mac.com> wrote:
>>
>> I'm a little confused - the original version had to have had a compile-only step to generate the object first, before running the link-only operation against the object. The new code replaces the link-only operation with a compile+link operation. Shouldn't the pre-existing compile-only operation be removed, since the new compile+link operation supersedes it?
> 
> Hi Ravi,
> 
> This change:
> 
>>> -     ${LD} -o ${.TARGET} -r --whole-archive ${.ALLSRC}
>>> +     ${CC} -nostdlib ${CFLAGS} -o ${.TARGET} -r -Wl,--whole-archive ${.ALLSRC}
> 
> is not actually compiling, it's just invoking the compiler driver to
> in turn invoke the linker. The input in ${.ALLSRC} is still a
> collection of object files.

Ahhh! My knowledge of `make' is terrible, so I thought ${.ALLSRC} must have been referring to actual source files in some non-obvious way. I also thought some special flag would be needed when passing an object file to the compiler, rather than a source file. Combine those two, and there was my problem.

Thanks for clarifying!

-Ravi (rpokala@)




More information about the svn-src-head mailing list