On 3/4/14 10:56 AM, Natanael Copa wrote:

> Ok. I figured it out now. What actually happened is that I only added
> SHLIB_LIBS=-lncurses during 'make' phase but not during 'make install'. 
> Adding SHLIB_LIBS to 'make install' or adding ./configure --disable-static
> solved it. I guess that building static makes the shared lib relink during
> make install phase. possibly due to a gnu make race condition on multicores
> but I havent investigated that.

I can see a possibility of a race condition.  However, when I first run

gmake everything SHLIB_LIBS=-lncurses

and then run

gmake install DESTDIR=/some/scratch/directory SHLIB_LIBS=-lncurses

the second invocation of make doesn't cause the libraries to be rebuilt.

The `everything' target doesn't matter -- it just builds the examples.
Leaving it out of the first gmake invocation doesn't cause the install
target to rebuild the shared libs.  I can't find a way to cause the
install invocation to rebuild the shared libraries even when I don't
include the SHLIB_LIBS assignment either.

When I run the first make with SHLIB_LIBS and the second (install) without,
I get this:

Dynamic section at offset 0x3c170 contains 23 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libncurses.so.5]


I'm not running parallel makes in these examples, but a quick test using
gmake -j 4 duplicates the results.  I'm using RHEL5.  I don't know what
else to tell you.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    [email protected]    http://cnswww.cns.cwru.edu/~chet/

_______________________________________________
Bug-readline mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-readline

Reply via email to