<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">On 03/05/2014 05:21 PM, Richard Purdie
wrote:<br>
</div>
<blockquote cite="mid:1394011283.31845.97.camel@ted" type="cite">
<pre wrap="">On Wed, 2014-03-05 at 17:18 +0800, Chong Lu wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Some packages do not link successfully using shared libraries.
When link something to libfl.so, we will get this:
        libfl.so: undefined reference to `yylex'
So we only build static libraries to fix this issue.
Signed-off-by: Chong Lu <a class="moz-txt-link-rfc2396E" href="mailto:Chong.Lu@windriver.com"><Chong.Lu@windriver.com></a>
---
.../files/flex-not-to-build-shared-libraries.patch | 39 ++++++++++++++++++++++
meta/recipes-devtools/flex/flex.inc | 1 +
2 files changed, 40 insertions(+)
create mode 100644 meta/recipes-devtools/flex/files/flex-not-to-build-shared-libraries.patch
</pre>
</blockquote>
<pre wrap="">
Why aren't the shared libraries working? Which packages show this
problem? Is this not a problem in the recipes using the shared
libraries?
At the very least this patch needs more explanation but I don't like the
idea.
Cheers,
Richard
</pre>
</blockquote>
In flex 2.5.38, libfl.so was built by libtool.<br>
<br>
ipsec-tools shows this problem.<br>
When link libipsec.so to libfl.so, it uses '-lfl' flag. It will link
from libfl.so.<br>
But libfl.so doesn't define yylex, we may get "libfl.so not found"
through `ldd libipsec.so'.<br>
If we only build static libraries, libipsec.so will not link to
libfl.so. it will link to libfl.a.<br>
Then libipsec.so uses yylex function by itself rather than libfl.so
provided.<br>
<br>
In Mageia distribution, revert building libraries with libtool.<br>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<a
href="http://www.rpmfind.net//linux/RPM/mageia/cauldron/x86_64/media/core/release/flex-2.5.38-1.mga5.x86_64.html">http://www.rpmfind.net//linux/RPM/mageia/cauldron/x86_64/media/core/release/flex-2.5.38-1.mga5.x86_64.html</a><br>
And in flex 2.5.37 version, it will only generate static libraries.<br>
So in order to ignore blocking some packages(likes ipsec-tools), I
have two ways to fix this issue.<br>
1. revert building libraries with libtool.<br>
2. modify libtool to make it only build static libraries.<br>
I choose the second way. The same result to first.<br>
<br>
Best Regards<br>
Chong<br>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<blockquote cite="mid:1394011283.31845.97.camel@ted" type="cite">
<pre wrap="">
</pre>
</blockquote>
<br>
</body>
</html>