<div dir="ltr"><div dir="ltr">On Wed, Sep 21, 2022 at 11:08 AM Bruno Haible <<a href="mailto:bruno@clisp.org">bruno@clisp.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">David Edelsohn wrote:<br>
> Someone created a huge file in /var/tmp.  I have removed it, so there now<br>
> is space.<br>
<br>
Thank you!<br>
<br>
> > 2) A symbolic link for /usr/lib/libncurses.a exists, but linking with<br>
> > this library produces a non-functional program:<br>
> ><br>
> > $ cat conftest.c<br>
> > extern int tgetent (char *, const char *);<br>
> ><br>
> > int<br>
> > main (void)<br>
> > {<br>
> >   return tgetent ((char *) 0, "xterm");<br>
> > }<br>
> ><br>
> > $ xlc -q64 -lncurses conftest.c<br>
> ><br>
> > $ ./a.out<br>
> > exec(): 0509-036 Cannot load program ./a.out because of the following<br>
> > errors:<br>
> >         0509-022 Cannot load module<br>
> > /opt/freeware/lib/libncurses.a(libncurses.so.6).<br>
> >         0509-150   Dependent module libgcc_s.a(shr.o) could not be loaded.<br>
> >         0509-022 Cannot load module libgcc_s.a(shr.o).<br>
> >         0509-026 System error: A file or directory in the path name does<br>
> > not exist.<br>
> >         0509-022 Cannot load module a.out.<br>
> >         0509-150   Dependent module<br>
> > /opt/freeware/lib/libncurses.a(libncurses.so.6) could not be loaded.<br>
> ><br>
> > $ ldd ./a.out<br>
> > ./a.out needs:<br>
> >          /usr/lib/libc.a(shr_64.o)<br>
> >          /usr/lib/libncurses.a(libncurses.so.6)<br>
> >          /unix<br>
> >          /usr/lib/libcrypt.a(shr_64.o)<br>
> > Cannot find libgcc_s.a(shr.o)<br>
> ><br>
> > Probably another symlink /usr/lib/libgcc_s.a -><br>
> > /opt/freeware/lib/libgcc_s.a<br>
> > will fix this problem.<br>
> ><br>
> <br>
> This is because you are combining a program compiled with XLC and a library<br>
> compiled with GCC.  You should add the LD_LIBRARY_PATH environment variable<br>
> so that the library knows where to find libgcc_s.a.<br>
<br>
Yes, I know that I can use 'LD_LIBRARY_PATH=/opt/freeware/lib', as a workaround.<br>
But it feels like the wrong cure, because<br>
<br>
  * I didn't specify to link with libgcc_s, only with libncurses, and I didn't<br>
    use gcc.<br>
<br>
  * libncurses.a is symlinked into /usr/lib, where xlc will find it. What was<br>
    the intent of this symlink? Apparently that compilations with xlc that use<br>
    -lncurses succeed. But when such compilations produce dysfunctional<br>
    programs, that goal has not been 100% achieved, IMHO.<br></blockquote><div><br></div><div>gcc119 was installed with AIX 7.2 and the Bull Freeware packages.  Those packages historically have contaminated the AIX namespace. IBM now recommends the AIX Toolbox for Linux, which can use "dnf" and keeps the namespaces more separate.</div><div><br></div><div>Michael Felt and I are planning to replace gcc119 with an AIX 7.3-based system that uses the AIX Toolbox for Linux packages.</div><div><br></div><div>Thanks, David</div><div><br></div></div></div>