Currently in the `_LT_COMPILER_OPTION' macro exists same issue as I tried
to fix for autoconf in the following thread: 
https://lists.gnu.org/archive/html/autoconf-patches/2019-03/msg00003.html

As result of this issue the following call:

> ./configure CPPFLAGS='-DSTR=\"TESTME\"' CC=clang

always ends with "checking if clang PIC flag -fPIC -DPIC works... no".
As result it is impossible to compile shared libraries with "clang" and flags
with quotes. This bug reproduced only with clang because it produce slightly
different warning with "-fPIC" and without this option:

    $ clang '-DTEST=\"str\"' main.c |& head -2
    In file included from <built-in>:349:
    <command line>:1:15: warning: missing terminating '"' character 
[-Winvalid-pp-token]
    $ clang '-DTEST=\"str\"' -fPIC main.c |& head -2
    In file included from <built-in>:351:
    <command line>:1:15: warning: missing terminating '"' character 
[-Winvalid-pp-token]

Suggested patch changes code to evaluate `ac_compile' twice: in second time
user-supplied arguments itself will be unquotted. This is a same behavior
as with CFLAGS passed to "make" command. 

Please note, suggested new test will work only with autoconf with my patch
from https://lists.gnu.org/archive/html/autoconf-patches/2019-03/msg00003.html
With older autoconf versions my test will fail on ./configure call and
test will be skipped.

During work on this issue I observed that _LT_DEMO_SETUP produced broken
code for a Makefile.am file. I failed to find how we can safely use $@
inside of m4_define function call and decided to workaround issue with
removing $@ at all.



Reply via email to