Re: Autoconf protype breaks GCC builtin inlining

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Zack Weinberg <zackw@xxxxxxxxx> writes:

> On Wed, Jan 24, 2018 at 6:55 PM, Zack Weinberg <zackw@xxxxxxxxx> wrote:
>
>> On Wed, Jan 24, 2018 at 4:36 PM, Ferenc Wágner <wferi@xxxxxxx> wrote:
>>
>>> Since ceil() can be inlined when optimization is enabled, I use
>>>
>>> AC_SEARCH_LIBS([ceil], [m], , [AC_MSG_ERROR([ceil not found])])
>>> AC_SUBST([m_LIBS], [$LIBS])
>>>
>>> to link against libm only when necessary (that is, when ceil is not
>>> inlined).  However, it does not work because GCC says in config.log:
>>>
>>> conftest.c:76:6: warning: conflicting types for built-in function 'ceil'
>>>  char ceil ();
>>>       ~~~~
>>>
>>> and inlining is disabled, thus ceil becomes an undefined reference
>>> without -lm.  However, in the actual code where math.h is #included, the
>>> above warning does not happen, ceil is inlined and I unnecessarily link
>>> with -lm.  How could I overcome this?
>>
>> You could try setting -Wl,--as-needed (which really should be the
>> default) in your makefiles.
>
> That was unnecessarily cryptic, sorry.

Nevermind, it was fine, I met --as-needed before, but I was somewhat
wary about using it for no concrete reason (FUD).

> The GNU linker accepts an option --as-needed

Which brings us to a followup question: how to check whether it's safe
to use --as-needed?  Is AX_CHECK_LINK_FLAG sufficient, should I check
for the effect somehow or what else is the best practice here?

> (This is not the default only for silly historical reasons which let's
> not get into here.)

Just out of curiosity, have to got a good link to the topic?
-- 
Thanks,
Feri

_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
https://lists.gnu.org/mailman/listinfo/autoconf




[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux