Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 376811 - net-misc/radvd-1.6 should DEPEND on flex
Summary: net-misc/radvd-1.6 should DEPEND on flex
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal minor
Assignee: Wolfram Schlich (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-28 20:04 UTC by Bertrand Jacquin
Modified: 2011-11-14 02:13 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
net-misc:radvd-1.6:20110728-200026.log (net-misc:radvd-1.6:20110728-200026.log,19.54 KB, text/plain)
2011-07-28 21:17 UTC, Bertrand Jacquin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bertrand Jacquin 2011-07-28 20:04:37 UTC
radvd is linked with libfl provided by flex

# i586-alix-linux-uclibc-emerge -vat radvd

i586-alix-linux-uclibc-gcc  -Os -pipe -march=geode -mmmx -m3dnow -fomit-frame-pointer -I/usr/i586-alix-linux-uclibc/usr/include/ -I/usr/i586-alix-linux-uclibc/include/ -Wall -Wpointer-arith  -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations  -L/usr/i586-alix-linux-uclibc/lib -L/usr/i586-alix-linux-uclibc/usr/lib -o radvd  log.o socket.o recv.o util.o radvd.o timer.o send.o process.o interface.o device.o device-common.o privsep.o gram.o scanner.o -lfl -lc 
/usr/libexec/gcc/i586-alix-linux-uclibc/ld: cannot find -lfl
collect2: ld returned 1 exit status
make[1]: *** [radvd] Error 1
make[1]: Leaving directory `/var/tmp/i586-alix-linux-uclibc/portage/net-misc/radvd-1.6/work/radvd-1.6'
make: *** [all] Error 2
emake failed


Reproducible: Always
Comment 1 Bertrand Jacquin 2011-07-28 20:07:02 UTC
Missing to tell how to fix it without modifying ebuild :

i586-alix-linux-uclibc-emerge -vat flex radvd
Comment 2 Agostino Sarubbo gentoo-dev 2011-07-28 21:06:48 UTC
Please add full build log next time _as attachment_ . TIA
Comment 3 Bertrand Jacquin 2011-07-28 21:17:00 UTC
Created attachment 281353 [details]
net-misc:radvd-1.6:20110728-200026.log
Comment 4 Michael Weber (RETIRED) gentoo-dev 2011-07-31 20:31:43 UTC
Hello,

first, qlist flex lists /usr/lib64/libfl.a and no .so, -lfl gets linked into radvd on a static way. Well glibc ist linked dynamic.

io xterm # scanelf -n /usr/sbin/radvd
 TYPE   NEEDED FILE 
ET_EXEC libc.so.6 /usr/sbin/radvd 

the question is, why does your system lack the /usr/lib64/libfl.a file.

Can you please comment the output of `emerge -pv sys-devel/flex`?

Thanks
Comment 5 Bertrand Jacquin 2011-08-01 08:24:37 UTC
(In reply to comment #4)
> Hello,
> 
> first, qlist flex lists /usr/lib64/libfl.a and no .so, -lfl gets linked into
> radvd on a static way. Well glibc ist linked dynamic.
> 
> io xterm # scanelf -n /usr/sbin/radvd
>  TYPE   NEEDED FILE 
> ET_EXEC libc.so.6 /usr/sbin/radvd 
> 
> the question is, why does your system lack the /usr/lib64/libfl.a file.

System lack /usr/lib64/libfl.a as this file is provided by flex and flex is not a dependency of any installed package.

This is a cross-compilation matter :

# scanelf -n /usr/i586-alix-linux-uclibc/usr/sbin/radvd
 TYPE   NEEDED FILE 
ET_EXEC libc.so.0,libgcc_s.so.1 /usr/i586-alix-linux-uclibc/usr/sbin/radvd 

> Can you please comment the output of `emerge -pv sys-devel/flex`?

# i586-alix-linux-uclibc-emerge -pv flex
Calculating dependencies... done!
[ebuild   R    ] sys-devel/flex-2.5.35 to /usr/i586-alix-linux-uclibc/ USE="-nls -static" 0 kB
Comment 6 Michael Weber (RETIRED) gentoo-dev 2011-08-01 12:28:48 UTC
Ok,

libfl.la is copied into radvd during compile time and flex is a build time dep on versions 1.6, 1.7 and 1.8.

I don't know why your configure detects flex but not -lfl.
Flex is pulled before radvd on a regular amd64 system.

Your point with the RDEPEND is invalid, since flex is no runtime dependency for radvd. 

Please figure out which flex binary your radvd/configure script detects and why it doesn't detect the corresponding -lfl file.
Comment 7 Bertrand Jacquin 2011-08-01 12:38:47 UTC
> I don't know why your configure detects flex but not -lfl.
> 
> Your point with the RDEPEND is invalid, since flex is no runtime dependency for
> radvd. 

When ROOT is modified, RDEPEND also define what should be installed in ROOT, while DEPEND define what should be install in ROOT=/

This is why I precised RDEPEND. But anyway, configure is bad as it's detected as present.

> Please figure out which flex binary your radvd/configure script detects and why
> it doesn't detect the corresponding -lfl file.

Will do this later in the day.
Comment 8 Bertrand Jacquin 2011-08-01 18:14:58 UTC
> > Please figure out which flex binary your radvd/configure script detects and why
> > it doesn't detect the corresponding -lfl file.
> 
> Will do this later in the day.

This is detected as host flex is checked in $PATH :

AC_PROG_YACC

Then a link test is done 

AM_PROG_LEX

And no action is taken if not found :

checking for yywrap in -lfl... no
checking for yywrap in -ll... no
checking lex output file root... lex.yy
checking whether yytext is a pointer... no
Comment 9 Michael Weber (RETIRED) gentoo-dev 2011-11-14 02:13:34 UTC
fixed