Hi everyone,

I just manually copied libc.a and libpthread.a from /tools/lib to /lib and
now I can compile libcap successfully. Now an ideal solution but seems to
be working so far. Any other suggestions?

On Tue, 7 Jan 2020 at 22:17 Αγαθοκλής via lfs-dev <
lfs-dev@lists.linuxfromscratch.org> wrote:

> Hi Pierre,
>
> On Tue, Jan 07, at 09:19 Pierre Labastie via lfs-dev wrote:
> > Le 06/01/2020 à 23:54, Αγαθοκλής via lfs-dev a écrit :
> > > Hi Saul,
> > >
> > > On Tue, Jan 07, at 01:35 Saul Tigh via lfs-dev wrote:
> > >> gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux -Wall
> > >> -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align
> > >> -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline
> -Wshadow
> > >> -g  -fPIC -I/usr/include
> > >> -I/build_scripts/libcap/src/libcap-2.30/tests/../libcap/include
> > >> libcap_psx_test.c -o libcap_psx_test
> > >> -L/build_scripts/libcap/src/libcap-2.30/tests/../libcap -lcap
> > >> -L/build_scripts/libcap/src/libcap-2.30/tests/../libcap -lpsx
> -lpthread
> > >> -Wl,-wrap,pthread_create --static
> > >> /usr/bin/ld: cannot find -lpthread
> > >> /usr/bin/ld: cannot find -lc
> > >> collect2: error: ld returned 1 exit status
> > >
> > > Do you have the pthread static library?
> > >
> > > Also no need for -fPIC here.
>
> > I'm sorry to say that the above comment is plain wrong:
>
> No need to feel sorry!
>
> > - First, this part of the command comes from upstream, so there is
> nothing we
> > can do with it (the -I/usr/include part does not come from upstream, so
> maybe
> > it has something to do with the failure). And they work well at least in
> my case.
> > - Second, -fPIC *is* needed because the linker uses a shared library
> rather
> > than a static one if present, and there *is* a shared libcap library
> > - Third, since -fPIC is used, it is possible to link with the shared
> pthread
> > library...
>
> What i know, is that the compiler doesn't have to produce position
> independent
> code for static executables, since those are loaded by the kernel in a
> fixed
> address and there is no need for rellocation, like say for shared
> libraries,
> as the linker does what it has to be done during linking. And the linker in
> this case is looking for static objects.
>
> Also by looking at the output libcap.a and libpsx.a were created before,
> which
> is why the linker doesn't complain about. So most probably Saul has moved
> away
> both libc.a and libpthread.a.
>
> > Pierre
>
> Best,
>  Αγαθοκλής
> --
> http://lists.linuxfromscratch.org/listinfo/lfs-dev
> FAQ: http://www.linuxfromscratch.org/faq/
> Unsubscribe: See the above information page
-- 
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to