All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] pppd breaks build without libutils
@ 2016-09-25 16:53 Cassiano Martin
  2016-09-25 18:58 ` Thomas Petazzoni
  0 siblings, 1 reply; 10+ messages in thread
From: Cassiano Martin @ 2016-09-25 16:53 UTC (permalink / raw)
  To: buildroot

Hello,

I am generating a small firmware environment, and pppd breaks build process
if libutils is not included. I looked under its sources and its used to
wtmp logging.

diff -rupN pppd.b/pppd.mk pppd/pppd.mk
--- pppd.b/pppd.mk      2016-09-25 13:51:06.125430110 -0300
+++ pppd/pppd.mk        2016-09-19 13:48:11.223130150 -0300
@@ -45,6 +45,7 @@ PPPD_POST_EXTRACT_HOOKS += PPPD_SET_RESO

 define PPPD_CONFIGURE_CMDS
        $(SED) 's/FILTER=y/#FILTER=y/' $(PPPD_DIR)/pppd/Makefile.linux
+       $(SED) 's/USE_LIBUTIL=y/#USE_LIBUTIL=y/'
$(PPPD_DIR)/pppd/Makefile.linux
        $(SED) 's/ifneq ($$(wildcard \/usr\/include\/pcap-bpf.h),)/ifdef
FILTER/' $(PPPD_DIR)/*/Makefile.linux
        ( cd $(@D); ./configure --prefix=/usr )
 endef

[]'s
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160925/cf6fad79/attachment.html>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-25 16:53 [Buildroot] pppd breaks build without libutils Cassiano Martin
@ 2016-09-25 18:58 ` Thomas Petazzoni
  2016-09-25 23:39   ` Cassiano Martin
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2016-09-25 18:58 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 25 Sep 2016 13:53:05 -0300, Cassiano Martin wrote:

> I am generating a small firmware environment, and pppd breaks build process
> if libutils is not included. I looked under its sources and its used to
> wtmp logging.

Thanks for this report. Could you be more specific in terms of the
Buildroot version that you're using, and the Buildroot configuration?
What exact build issue are you facing (i.e can you copy/paste the error
messages) ?

Indeed, we have autobuilders that test random configurations, and pppd
is built many times, and we haven't seen such an issue so far I believe.

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-25 18:58 ` Thomas Petazzoni
@ 2016-09-25 23:39   ` Cassiano Martin
  2016-09-27 21:33     ` Arnout Vandecappelle
  0 siblings, 1 reply; 10+ messages in thread
From: Cassiano Martin @ 2016-09-25 23:39 UTC (permalink / raw)
  To: buildroot

Sure, my fault not being version specific.
Im currently running a git cloned version (Buildroot
2016.08-git-01556-ge8c18f2-dirty)
and I'm using a pre-built toolchain from realtek. Target is MIPS32 bit LSB.
So far, I get this when compiling.

ude '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1
-DHAVE_LOGWTMP=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN
-DINET6=1 -DMAXOCTETS -Wl,-E -o pppd main.o magic.o fsm.o lcp.o ipcp.o
upap.o chap-new.o md5.o ccp.o ecp.o auth.o options.o demand.o utils.o
sys-linux.o ipxcp.o tty.o eap.o chap-md5.o session.o md4.o chap_ms.o sha1.o
pppcrypt.o multilink.o tdb.o spinlock.o ipv6cp.o eui64.o  -lcrypt -lutil
-ldl
/home/cassiano/projects/oiw-2441apgn/realtek/rsdk-4.6.4-4181-EB-3.10-u0.9.33-m32-150324/bin/../lib/gcc/mips-linux-uclibc/4.6.4/../../../../mips-linux-uclibc/bin/ld:
cannot find -lutil
collect2: ld returned 1 exit status
Makefile:217: recipe for target 'pppd' failed
make[2]: *** [pppd] Error 1
make[2]: Leaving directory
'/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7/pppd'
Makefile:13: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory
'/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7'
package/pkg-generic.mk:201: recipe for target
'/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7/.stamp_built'
failed


2016-09-25 15:58 GMT-03:00 Thomas Petazzoni <
thomas.petazzoni@free-electrons.com>:

> Hello,
>
> On Sun, 25 Sep 2016 13:53:05 -0300, Cassiano Martin wrote:
>
> > I am generating a small firmware environment, and pppd breaks build
> process
> > if libutils is not included. I looked under its sources and its used to
> > wtmp logging.
>
> Thanks for this report. Could you be more specific in terms of the
> Buildroot version that you're using, and the Buildroot configuration?
> What exact build issue are you facing (i.e can you copy/paste the error
> messages) ?
>
> Indeed, we have autobuilders that test random configurations, and pppd
> is built many times, and we haven't seen such an issue so far I believe.
>
> Thanks a lot!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20160925/c1b6f38b/attachment.html>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-25 23:39   ` Cassiano Martin
@ 2016-09-27 21:33     ` Arnout Vandecappelle
  2016-09-27 21:43       ` Yann E. MORIN
  0 siblings, 1 reply; 10+ messages in thread
From: Arnout Vandecappelle @ 2016-09-27 21:33 UTC (permalink / raw)
  To: buildroot



On 26-09-16 01:39, Cassiano Martin wrote:
> Sure, my fault not being version specific. 
> Im currently running a git cloned version (Buildroot
> 2016.08-git-01556-ge8c18f2-dirty)
> and I'm using a pre-built toolchain from realtek. Target is MIPS32 bit LSB. 
> So far, I get this when compiling.
> 
> ude '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1
> -DHAVE_LOGWTMP=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DINET6=1
> -DMAXOCTETS -Wl,-E -o pppd main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o
> md5.o ccp.o ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o
> eap.o chap-md5.o session.o md4.o chap_ms.o sha1.o pppcrypt.o multilink.o tdb.o
> spinlock.o ipv6cp.o eui64.o  -lcrypt -lutil -ldl
> /home/cassiano/projects/oiw-2441apgn/realtek/rsdk-4.6.4-4181-EB-3.10-u0.9.33-m32-150324/bin/../lib/gcc/mips-linux-uclibc/4.6.4/../../../../mips-linux-uclibc/bin/ld:
> cannot find -lutil

 Looks like the Realtek toolchain is not compatible with Buildroot assumptions.
libutil is part of the toolchain. I guess Realtek configures uClibc without
UCLIBC_HAS_LIBUTIL.

 Buildroot cannot support all possible uClibc configurations for all packages.
Instead, we take minimal assumptions about the uClibc configuration - basically
package/uclibc/uClibc-ng.config. If you have something less than that, then some
packages may fail.

 The workaround you propose is basically disabling wtmp support. It's not really
acceptable to do that for 95% of the users who actually do have this in their
toolchain.

 We should probably add a FAQ entry for this kind of issue.

 Regards,
 Arnout

> collect2: ld returned 1 exit status
> Makefile:217: recipe for target 'pppd' failed
> make[2]: *** [pppd] Error 1
> make[2]: Leaving directory
> '/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7/pppd'
> Makefile:13: recipe for target 'all' failed
> make[1]: *** [all] Error 2
> make[1]: Leaving directory
> '/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7'
> package/pkg-generic.mk:201 <http://pkg-generic.mk:201>: recipe for target
> '/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7/.stamp_built' failed
> 
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-27 21:33     ` Arnout Vandecappelle
@ 2016-09-27 21:43       ` Yann E. MORIN
  2016-09-28  8:59         ` Thomas Petazzoni
  0 siblings, 1 reply; 10+ messages in thread
From: Yann E. MORIN @ 2016-09-27 21:43 UTC (permalink / raw)
  To: buildroot

Arnout, All,

On 2016-09-27 23:33 +0200, Arnout Vandecappelle spake thusly:
> On 26-09-16 01:39, Cassiano Martin wrote:
> > Sure, my fault not being version specific. 
> > Im currently running a git cloned version (Buildroot
> > 2016.08-git-01556-ge8c18f2-dirty)
> > and I'm using a pre-built toolchain from realtek. Target is MIPS32 bit LSB. 
> > So far, I get this when compiling.
> > 
> > ude '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1
> > -DHAVE_LOGWTMP=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DINET6=1
> > -DMAXOCTETS -Wl,-E -o pppd main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o
> > md5.o ccp.o ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o
> > eap.o chap-md5.o session.o md4.o chap_ms.o sha1.o pppcrypt.o multilink.o tdb.o
> > spinlock.o ipv6cp.o eui64.o  -lcrypt -lutil -ldl
> > /home/cassiano/projects/oiw-2441apgn/realtek/rsdk-4.6.4-4181-EB-3.10-u0.9.33-m32-150324/bin/../lib/gcc/mips-linux-uclibc/4.6.4/../../../../mips-linux-uclibc/bin/ld:
> > cannot find -lutil
> 
>  Looks like the Realtek toolchain is not compatible with Buildroot assumptions.
> libutil is part of the toolchain. I guess Realtek configures uClibc without
> UCLIBC_HAS_LIBUTIL.

Which suddenly rings a bell here: the latest uClibc-ng version, 1.0.18,
now is one-lib, i.e. everything merged into libc.so like musl is, so
we could get external toolchains which will lack libutil.so because
there is no longer such a library now.

If uClibc-ng does like musl does, there will be a lot of empty static
versions of the libraries, libutil.a, libcrypt.a and so on, but there
will no longer be shared variants.

We'll have to account for that in our external toolchain handling.

Regards,
Yann E. MORIN.

>  Buildroot cannot support all possible uClibc configurations for all packages.
> Instead, we take minimal assumptions about the uClibc configuration - basically
> package/uclibc/uClibc-ng.config. If you have something less than that, then some
> packages may fail.
> 
>  The workaround you propose is basically disabling wtmp support. It's not really
> acceptable to do that for 95% of the users who actually do have this in their
> toolchain.
> 
>  We should probably add a FAQ entry for this kind of issue.
> 
>  Regards,
>  Arnout
> 
> > collect2: ld returned 1 exit status
> > Makefile:217: recipe for target 'pppd' failed
> > make[2]: *** [pppd] Error 1
> > make[2]: Leaving directory
> > '/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7/pppd'
> > Makefile:13: recipe for target 'all' failed
> > make[1]: *** [all] Error 2
> > make[1]: Leaving directory
> > '/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7'
> > package/pkg-generic.mk:201 <http://pkg-generic.mk:201>: recipe for target
> > '/home/cassiano/projects/oiw-2441apgn/output/build/pppd-2.4.7/.stamp_built' failed
> > 
> > 
> 
> -- 
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-27 21:43       ` Yann E. MORIN
@ 2016-09-28  8:59         ` Thomas Petazzoni
  2016-09-28 16:34           ` Yann E. MORIN
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2016-09-28  8:59 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 27 Sep 2016 23:43:25 +0200, Yann E. MORIN wrote:

> Which suddenly rings a bell here: the latest uClibc-ng version, 1.0.18,
> now is one-lib, i.e. everything merged into libc.so like musl is, so
> we could get external toolchains which will lack libutil.so because
> there is no longer such a library now.
> 
> If uClibc-ng does like musl does, there will be a lot of empty static
> versions of the libraries, libutil.a, libcrypt.a and so on, but there
> will no longer be shared variants.
> 
> We'll have to account for that in our external toolchain handling.

I'm not sure what needs to be handled. We already support musl that
does this, and it works fine. It should be perfectly transparent to the
external toolchain handling (except the copying of the shared libraries
to the target, of course).

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-28  8:59         ` Thomas Petazzoni
@ 2016-09-28 16:34           ` Yann E. MORIN
  2016-09-28 16:41             ` Waldemar Brodkorb
  2016-09-29  9:41             ` Arnout Vandecappelle
  0 siblings, 2 replies; 10+ messages in thread
From: Yann E. MORIN @ 2016-09-28 16:34 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2016-09-28 10:59 +0200, Thomas Petazzoni spake thusly:
> On Tue, 27 Sep 2016 23:43:25 +0200, Yann E. MORIN wrote:
> 
> > Which suddenly rings a bell here: the latest uClibc-ng version, 1.0.18,
> > now is one-lib, i.e. everything merged into libc.so like musl is, so
> > we could get external toolchains which will lack libutil.so because
> > there is no longer such a library now.
> > 
> > If uClibc-ng does like musl does, there will be a lot of empty static
> > versions of the libraries, libutil.a, libcrypt.a and so on, but there
> > will no longer be shared variants.
> > 
> > We'll have to account for that in our external toolchain handling.
> 
> I'm not sure what needs to be handled. We already support musl that
> does this, and it works fine. It should be perfectly transparent to the
> external toolchain handling (except the copying of the shared libraries
> to the target, of course).

That's exactly what I meant: currently, we copy anexplicit set of shared
libraries from external uClibc-based toolchains:

   66 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
   67 TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.*
        libdl.so.* libgcc_s.so.* libm.so.*       libnsl.so.* libresolv.so.*
        librt.so.* libutil.so.*
   68 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy)
   69 TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.*
   70 else
   71 TOOLCHAIN_EXTERNAL_LIBS += ld*.so.*
   72 endif
   73 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
   74 TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.*
   75 ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),)
   76 TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.*
   77 endif # gdbserver
   78 endif # ! no threads
   79 endif

Now, old uClibc-based toolchains will have those libs, while newer ones
will only have libc.so.* .

This is that which we need to account for.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-28 16:34           ` Yann E. MORIN
@ 2016-09-28 16:41             ` Waldemar Brodkorb
  2016-09-28 16:47               ` Yann E. MORIN
  2016-09-29  9:41             ` Arnout Vandecappelle
  1 sibling, 1 reply; 10+ messages in thread
From: Waldemar Brodkorb @ 2016-09-28 16:41 UTC (permalink / raw)
  To: buildroot

Hi,
Yann E. MORIN wrote,

> Thomas, All,
> 
> On 2016-09-28 10:59 +0200, Thomas Petazzoni spake thusly:
> > On Tue, 27 Sep 2016 23:43:25 +0200, Yann E. MORIN wrote:
> > 
> > > Which suddenly rings a bell here: the latest uClibc-ng version, 1.0.18,
> > > now is one-lib, i.e. everything merged into libc.so like musl is, so
> > > we could get external toolchains which will lack libutil.so because
> > > there is no longer such a library now.
> > > 
> > > If uClibc-ng does like musl does, there will be a lot of empty static
> > > versions of the libraries, libutil.a, libcrypt.a and so on, but there
> > > will no longer be shared variants.
> > > 
> > > We'll have to account for that in our external toolchain handling.
> > 
> > I'm not sure what needs to be handled. We already support musl that
> > does this, and it works fine. It should be perfectly transparent to the
> > external toolchain handling (except the copying of the shared libraries
> > to the target, of course).
> 
> That's exactly what I meant: currently, we copy anexplicit set of shared
> libraries from external uClibc-based toolchains:
> 
>    66 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
>    67 TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.*
>         libdl.so.* libgcc_s.so.* libm.so.*       libnsl.so.* libresolv.so.*
>         librt.so.* libutil.so.*
>    68 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy)
>    69 TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.*
>    70 else
>    71 TOOLCHAIN_EXTERNAL_LIBS += ld*.so.*
>    72 endif
>    73 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
>    74 TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.*
>    75 ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),)
>    76 TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.*
>    77 endif # gdbserver
>    78 endif # ! no threads
>    79 endif
> 
> Now, old uClibc-based toolchains will have those libs, while newer ones
> will only have libc.so.* .

Just to be sure:
It will have libc.so.* and ld-uClibc* they are not combined.
And for gdb threading we still have libthread_db.so*.

best regards
 Waldemar

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-28 16:41             ` Waldemar Brodkorb
@ 2016-09-28 16:47               ` Yann E. MORIN
  0 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2016-09-28 16:47 UTC (permalink / raw)
  To: buildroot

Waldemar, All,

On 2016-09-28 18:41 +0200, Waldemar Brodkorb spake thusly:
> Yann E. MORIN wrote,
> > On 2016-09-28 10:59 +0200, Thomas Petazzoni spake thusly:
> > > On Tue, 27 Sep 2016 23:43:25 +0200, Yann E. MORIN wrote:
> > > 
> > > > Which suddenly rings a bell here: the latest uClibc-ng version, 1.0.18,
> > > > now is one-lib, i.e. everything merged into libc.so like musl is, so
> > > > we could get external toolchains which will lack libutil.so because
> > > > there is no longer such a library now.
> > > > 
> > > > If uClibc-ng does like musl does, there will be a lot of empty static
> > > > versions of the libraries, libutil.a, libcrypt.a and so on, but there
> > > > will no longer be shared variants.
> > > > 
> > > > We'll have to account for that in our external toolchain handling.
> > > 
> > > I'm not sure what needs to be handled. We already support musl that
> > > does this, and it works fine. It should be perfectly transparent to the
> > > external toolchain handling (except the copying of the shared libraries
> > > to the target, of course).
> > 
> > That's exactly what I meant: currently, we copy anexplicit set of shared
> > libraries from external uClibc-based toolchains:
> > 
> >    66 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
> >    67 TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.*
> >         libdl.so.* libgcc_s.so.* libm.so.*       libnsl.so.* libresolv.so.*
> >         librt.so.* libutil.so.*
> >    68 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy)
> >    69 TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.*
> >    70 else
> >    71 TOOLCHAIN_EXTERNAL_LIBS += ld*.so.*
> >    72 endif
> >    73 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
> >    74 TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.*
> >    75 ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),)
> >    76 TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.*
> >    77 endif # gdbserver
> >    78 endif # ! no threads
> >    79 endif
> > 
> > Now, old uClibc-based toolchains will have those libs, while newer ones
> > will only have libc.so.* .
> 
> Just to be sure:
> It will have libc.so.* and ld-uClibc* they are not combined.
> And for gdb threading we still have libthread_db.so*.

Yes, I've seen that, but the main point is that most of the shared
variants will no longer be available any more, so we need to only copy
them when they exist.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] pppd breaks build without libutils
  2016-09-28 16:34           ` Yann E. MORIN
  2016-09-28 16:41             ` Waldemar Brodkorb
@ 2016-09-29  9:41             ` Arnout Vandecappelle
  1 sibling, 0 replies; 10+ messages in thread
From: Arnout Vandecappelle @ 2016-09-29  9:41 UTC (permalink / raw)
  To: buildroot



On 28-09-16 18:34, Yann E. MORIN wrote:
> Thomas, All,
> 
> On 2016-09-28 10:59 +0200, Thomas Petazzoni spake thusly:
>> On Tue, 27 Sep 2016 23:43:25 +0200, Yann E. MORIN wrote:
>>
>>> Which suddenly rings a bell here: the latest uClibc-ng version, 1.0.18,
>>> now is one-lib, i.e. everything merged into libc.so like musl is, so
>>> we could get external toolchains which will lack libutil.so because
>>> there is no longer such a library now.
>>>
>>> If uClibc-ng does like musl does, there will be a lot of empty static
>>> versions of the libraries, libutil.a, libcrypt.a and so on, but there
>>> will no longer be shared variants.
>>>
>>> We'll have to account for that in our external toolchain handling.
>>
>> I'm not sure what needs to be handled. We already support musl that
>> does this, and it works fine. It should be perfectly transparent to the
>> external toolchain handling (except the copying of the shared libraries
>> to the target, of course).
> 
> That's exactly what I meant: currently, we copy anexplicit set of shared
> libraries from external uClibc-based toolchains:
> 
>    66 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
>    67 TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.*
>         libdl.so.* libgcc_s.so.* libm.so.*       libnsl.so.* libresolv.so.*
>         librt.so.* libutil.so.*
>    68 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy)
>    69 TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.*
>    70 else
>    71 TOOLCHAIN_EXTERNAL_LIBS += ld*.so.*
>    72 endif
>    73 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
>    74 TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.*
>    75 ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),)
>    76 TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.*
>    77 endif # gdbserver
>    78 endif # ! no threads
>    79 endif
> 
> Now, old uClibc-based toolchains will have those libs, while newer ones
> will only have libc.so.* .
> 
> This is that which we need to account for.

TOOLCHAIN_EXTERNAL_LIBS is used as the -name argument of a find, so no error if
it doesn't exist. I tried adding a libfoobar.so.* and it doesn't complain (and
obviously there is no libfoobar.so.* in staging).

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-09-29  9:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-25 16:53 [Buildroot] pppd breaks build without libutils Cassiano Martin
2016-09-25 18:58 ` Thomas Petazzoni
2016-09-25 23:39   ` Cassiano Martin
2016-09-27 21:33     ` Arnout Vandecappelle
2016-09-27 21:43       ` Yann E. MORIN
2016-09-28  8:59         ` Thomas Petazzoni
2016-09-28 16:34           ` Yann E. MORIN
2016-09-28 16:41             ` Waldemar Brodkorb
2016-09-28 16:47               ` Yann E. MORIN
2016-09-29  9:41             ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.