[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22895: broken handling of spaces after -{L,R,l}
From: |
Michael |
Subject: |
bug#22895: broken handling of spaces after -{L,R,l} |
Date: |
Thu, 3 Mar 2016 09:40:39 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.6.0 |
Hi,
in m4/libtool.m4, the handling of spaces after -{L,R,l} for parsing
linker commands looks as follows:
case $prev$p in
-L* | -R* | -l*)
# Some compilers place space between "-{L,R}" and the path.
# Remove the space.
if test x-L = "$p" ||
test x-R = "$p"; then
prev=$p
continue
fi
This seems to be broken for two reasons:
1. The case handling captures -l, but the following tests consider only
-L and -R.
2. The tests for equality use an x on the left side, but not on the
right side.
A working code should look as follows (patch is attached):
case $prev$p in
-L* | -R* | -l*)
# Some compilers place space between "-{L,R,l}" and the path.
# Remove the space.
if test x-L = "x$p" ||
test x-R = "x$p" ||
test x-l = "x$p"; then
prev=$p
continue
fi
I stumbled across this bug when using gfortran (5.3.1) which emits the
following (valid) line:
Driving: gfortran -v conftest.o -l gfortran -l m -shared-libgcc
The current (broken) libtool leads to "-l -l" in the "postdeps_FC"
variable. After the fix, the correct "-lgfortran -lm" appears.
Best regards,
Michael
libtool_fix_space_handling.patch
Description: Text Data
- bug#22895: broken handling of spaces after -{L,R,l},
Michael <=