Mailing List Archive

/lib/libgcc_s.so.1 does not belong to any package?
A "qfile /lib/libgcc_s.so.1" does not list any package,
should it not belong to sys-devel/gcc ?

It kind of messes up things like
qlist --quiet --all ${TARGET} > /tmp/${TARGET}/cross-tools
then libgcc_s isn't included

Jocke
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> A "qfile /lib/libgcc_s.so.1" does not list any package,
> should it not belong to sys-devel/gcc ?

gcc-config installs it from /usr/lib/gcc/..... to /lib
-mike
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/10 21:58:54:
>
> On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> > A "qfile /lib/libgcc_s.so.1" does not list any package,
> > should it not belong to sys-devel/gcc ?
>
> gcc-config installs it from /usr/lib/gcc/..... to /lib
> -mike

Ok, so I should run gcc-config and binutils-config after installing a binary
cross pkg that I got by taring files listed by qlist?

Any other file that might be missing that I need deal with?

Jocke
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On Saturday 10 March 2012 16:32:31 Joakim Tjernlund wrote:
> Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/10 21:58:54:
> > On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> > > A "qfile /lib/libgcc_s.so.1" does not list any package,
> > > should it not belong to sys-devel/gcc ?
> >
> > gcc-config installs it from /usr/lib/gcc/..... to /lib
>
> Ok, so I should run gcc-config and binutils-config after installing a
> binary cross pkg that I got by taring files listed by qlist?

gcc/binutils should execute the respective config script in their pkg_postinst
funcs

> Any other file that might be missing that I need deal with?

the file doesn't really need to be in /lib. it's just necessary if you have a
split /usr and have things that link against it in /.
-mike
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On 10/03/2012 20:58, Mike Frysinger wrote:
> On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
>> A "qfile /lib/libgcc_s.so.1" does not list any package,
>> should it not belong to sys-devel/gcc ?
> gcc-config installs it from /usr/lib/gcc/..... to /lib
> -mike

So perhaps there is a case that gcc-config/eselect/webapp-config/etc
should record what they do..?

Ed
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
Ed W <lists@wildgooses.com> wrote on 2012/03/13 13:07:37:
>
> On 10/03/2012 20:58, Mike Frysinger wrote:
> > On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> >> A "qfile /lib/libgcc_s.so.1" does not list any package,
> >> should it not belong to sys-devel/gcc ?
> > gcc-config installs it from /usr/lib/gcc/..... to /lib
> > -mike
>
> So perhaps there is a case that gcc-config/eselect/webapp-config/etc
> should record what they do..?

Would help some, I just noted that gcc-config does not install libgcc_s.so.1 for
cross gccs, a bug?

Jocke
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On Tuesday 13 March 2012 08:43:16 Joakim Tjernlund wrote:
> Ed W <lists@wildgooses.com> wrote on 2012/03/13 13:07:37:
> > On 10/03/2012 20:58, Mike Frysinger wrote:
> > > On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> > >> A "qfile /lib/libgcc_s.so.1" does not list any package,
> > >> should it not belong to sys-devel/gcc ?
> > >
> > > gcc-config installs it from /usr/lib/gcc/..... to /lib
> >
> > So perhaps there is a case that gcc-config/eselect/webapp-config/etc
> > should record what they do..?
>
> Would help some, I just noted that gcc-config does not install
> libgcc_s.so.1 for cross gccs, a bug?

not sure what you mean. afaik, it works fine.
-mike
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/13 23:47:27:
>
> On Tuesday 13 March 2012 08:43:16 Joakim Tjernlund wrote:
> > Ed W <lists@wildgooses.com> wrote on 2012/03/13 13:07:37:
> > > On 10/03/2012 20:58, Mike Frysinger wrote:
> > > > On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> > > >> A "qfile /lib/libgcc_s.so.1" does not list any package,
> > > >> should it not belong to sys-devel/gcc ?
> > > >
> > > > gcc-config installs it from /usr/lib/gcc/..... to /lib
> > >
> > > So perhaps there is a case that gcc-config/eselect/webapp-config/etc
> > > should record what they do..?
> >
> > Would help some, I just noted that gcc-config does not install
> > libgcc_s.so.1 for cross gccs, a bug?
>
> not sure what you mean. afaik, it works fine.
> -mike

gentoo-qclli gcc # gcc-config powerpc-softfloat_4.5.3-linux-gnu-4.5.3
* Switching cross-compiler to powerpc-softfloat_4.5.3-linux-gnu-4.5.3 ... [ ok ]
gentoo-qclli gcc # find /usr/powerpc-softfloat_4.5.3-linux-gnu/ -name "libgcc_s.*"
gentoo-qclli gcc #

Should it not be a libgcc_s under there?
There is one here:
/usr/lib/gcc/powerpc-softfloat_4.5.3-linux-gnu/4.5.3/libgcc_s.so.1
but I figure gcc-config would install it under usr/powerpc-softfloat_4.5.3-linux-gnu/ ?

Jocke
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On Wednesday 14 March 2012 05:32:35 Joakim Tjernlund wrote:
> Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/13 23:47:27:
> > On Tuesday 13 March 2012 08:43:16 Joakim Tjernlund wrote:
> > > Ed W <lists@wildgooses.com> wrote on 2012/03/13 13:07:37:
> > > > On 10/03/2012 20:58, Mike Frysinger wrote:
> > > > > On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> > > > >> A "qfile /lib/libgcc_s.so.1" does not list any package,
> > > > >> should it not belong to sys-devel/gcc ?
> > > > >
> > > > > gcc-config installs it from /usr/lib/gcc/..... to /lib
> > > >
> > > > So perhaps there is a case that gcc-config/eselect/webapp-config/etc
> > > > should record what they do..?
> > >
> > > Would help some, I just noted that gcc-config does not install
> > > libgcc_s.so.1 for cross gccs, a bug?
> >
> > not sure what you mean. afaik, it works fine.
>
> gentoo-qclli gcc # gcc-config powerpc-softfloat_4.5.3-linux-gnu-4.5.3
> * Switching cross-compiler to powerpc-softfloat_4.5.3-linux-gnu-4.5.3 ...
> [ ok ]
> gentoo-qclli gcc # find /usr/powerpc-softfloat_4.5.3-linux-gnu/ -name
> "libgcc_s.*"
> gentoo-qclli gcc #
>
> Should it not be a libgcc_s under there?

no. again, context matters. what you did above was pick a cross-compiler
(CHOST=x86_64-pc-linux-gnu/whatever CTARGET=powerpc-xxx). you did not pick a
native compiler and that is the only time libgcc_s and friends get copied.

had you installed a native compiler into /usr/$CTARGET and then done something
like `ROOT=/usr/$CTARGET gcc-config $CTARGET-ver`, you'd probably get a
libgcc_s in /usr/$CTARGET/lib/.
-mike
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/14 20:30:24:
>
> On Wednesday 14 March 2012 05:32:35 Joakim Tjernlund wrote:
> > Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/13 23:47:27:
> > > On Tuesday 13 March 2012 08:43:16 Joakim Tjernlund wrote:
> > > > Ed W <lists@wildgooses.com> wrote on 2012/03/13 13:07:37:
> > > > > On 10/03/2012 20:58, Mike Frysinger wrote:
> > > > > > On Friday 09 March 2012 10:58:10 Joakim Tjernlund wrote:
> > > > > >> A "qfile /lib/libgcc_s.so.1" does not list any package,
> > > > > >> should it not belong to sys-devel/gcc ?
> > > > > >
> > > > > > gcc-config installs it from /usr/lib/gcc/..... to /lib
> > > > >
> > > > > So perhaps there is a case that gcc-config/eselect/webapp-config/etc
> > > > > should record what they do..?
> > > >
> > > > Would help some, I just noted that gcc-config does not install
> > > > libgcc_s.so.1 for cross gccs, a bug?
> > >
> > > not sure what you mean. afaik, it works fine.
> >
> > gentoo-qclli gcc # gcc-config powerpc-softfloat_4.5.3-linux-gnu-4.5.3
> > * Switching cross-compiler to powerpc-softfloat_4.5.3-linux-gnu-4.5.3 ...
> > [ ok ]
> > gentoo-qclli gcc # find /usr/powerpc-softfloat_4.5.3-linux-gnu/ -name
> > "libgcc_s.*"
> > gentoo-qclli gcc #
> >
> > Should it not be a libgcc_s under there?
>
> no. again, context matters. what you did above was pick a cross-compiler
> (CHOST=x86_64-pc-linux-gnu/whatever CTARGET=powerpc-xxx). you did not pick a
> native compiler and that is the only time libgcc_s and friends get copied.
>
> had you installed a native compiler into /usr/$CTARGET and then done something
> like `ROOT=/usr/$CTARGET gcc-config $CTARGET-ver`, you'd probably get a
> libgcc_s in /usr/$CTARGET/lib/.
> -mike

Sorry for the late reply, got sidetracked.

What bugs me is that one can generally use /usr/$CTARGET as your root fs on
your favourite embedded target. Doing so will loose libgcc_s.so as there isn't one
installed. Having to install gcc into /usr/$CTARGET just to get libgcc_s is
a bit much.

Also, would it not be better if glibc showed up in
export ROOT=/usr/${CTARGET} PKGDIR=${PORTDIR}/pkgs/${CTARGET}/pkgs quickpkg `qlist -IC`
instead of
export ROOT=/ PKGDIR=${PORTDIR}/pkgs/${CTARGET}/cross-tools quickpkg `qlist -IC cross-${CTARGET}`
?

Jocke
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On Sunday 18 March 2012 14:53:44 Joakim Tjernlund wrote:
> What bugs me is that one can generally use /usr/$CTARGET as your root fs on
> your favourite embedded target. Doing so will loose libgcc_s.so as there
> isn't one installed. Having to install gcc into /usr/$CTARGET just to get
> libgcc_s is a bit much.

why does this actually matter ? as noted, this hack is merely there to
support a split /usr setup. if you're using /usr/$CTARGET as your rootfs,
then you aren't going to have a split /usr, and thus the lib copy is
unnecessary.

> Also, would it not be better if glibc showed up in
> export ROOT=/usr/${CTARGET} PKGDIR=${PORTDIR}/pkgs/${CTARGET}/pkgs
> quickpkg `qlist -IC` instead of
> export ROOT=/ PKGDIR=${PORTDIR}/pkgs/${CTARGET}/cross-tools quickpkg
> `qlist -IC cross-${CTARGET}` ?

no. cross-${CTARGET}/glibc is a cross-compiler glibc, not a native one. yes,
you can run it through a script to move things around so that it'd basically
have the same install as a native glibc, but the existing one is not.

it might be useful to have crossdev automatically inject glibc into
package.provided for /usr/$CTARGET since attempting to install a native one in
there will hit conflicts.
-mike
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/19 01:51:53:
>
> On Sunday 18 March 2012 14:53:44 Joakim Tjernlund wrote:
> > What bugs me is that one can generally use /usr/$CTARGET as your root fs on
> > your favourite embedded target. Doing so will loose libgcc_s.so as there
> > isn't one installed. Having to install gcc into /usr/$CTARGET just to get
> > libgcc_s is a bit much.
>
> why does this actually matter ? as noted, this hack is merely there to
> support a split /usr setup. if you're using /usr/$CTARGET as your rootfs,
> then you aren't going to have a split /usr, and thus the lib copy is
> unnecessary.

I don't quite understand. If I copy /usr/$CTARGET to my target board
as rootfs there will be no libgcc on my target and NPTL needs it.

>
> > Also, would it not be better if glibc showed up in
> > export ROOT=/usr/${CTARGET} PKGDIR=${PORTDIR}/pkgs/${CTARGET}/pkgs
> > quickpkg `qlist -IC` instead of
> > export ROOT=/ PKGDIR=${PORTDIR}/pkgs/${CTARGET}/cross-tools quickpkg
> > `qlist -IC cross-${CTARGET}` ?
>
> no. cross-${CTARGET}/glibc is a cross-compiler glibc, not a native one. yes,
> you can run it through a script to move things around so that it'd basically
> have the same install as a native glibc, but the existing one is not.
>
> it might be useful to have crossdev automatically inject glibc into
> package.provided for /usr/$CTARGET since attempting to install a native one in
> there will hit conflicts.

hmm, I always viewed glibc under /usr/$CTARGET as a native target glibc which
could be copied to the target directly, but now you say it is not?

So I should continue building glibc under my own tree (that is what I have been doing
but I figured I could optimize away that step)?

Jocke
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On Monday 19 March 2012 14:09:00 Joakim Tjernlund wrote:
> Mike Frysinger <vapier@gentoo.org> wrote on 2012/03/19 01:51:53:
> > On Sunday 18 March 2012 14:53:44 Joakim Tjernlund wrote:
> > > What bugs me is that one can generally use /usr/$CTARGET as your root
> > > fs on your favourite embedded target. Doing so will loose libgcc_s.so
> > > as there isn't one installed. Having to install gcc into /usr/$CTARGET
> > > just to get libgcc_s is a bit much.
> >
> > why does this actually matter ? as noted, this hack is merely there to
> > support a split /usr setup. if you're using /usr/$CTARGET as your
> > rootfs, then you aren't going to have a split /usr, and thus the lib
> > copy is unnecessary.
>
> I don't quite understand. If I copy /usr/$CTARGET to my target board
> as rootfs there will be no libgcc on my target and NPTL needs it.

true, but the copying process to /lib is pretty orthogonal to that. if
anything, i plan on deprecating the gcc-config logic to only copying to /lib if
it detects that /usr is split.

as for the libgcc_s.so missing completely, today you have to:
ROOT=/usr/${CTARGET} emerge sys-devel/gcc
as libgcc_s.so isn't the only library you're missing. none of the gcc libs
are installed in there (libstdc++, libmudflap, libgfortran, etc...).

might be another useful hack script to include in crossdev ... give it a
/usr/$CTARGET to transparently sync gcc libs into from your cross-compiler.
obviously if you want to run `gcc` on the target though you're going to have
to do what i said above with the ROOT/emerge.

> > > Also, would it not be better if glibc showed up in
> > >
> > > export ROOT=/usr/${CTARGET} PKGDIR=${PORTDIR}/pkgs/${CTARGET}/pkgs
> > >
> > > quickpkg `qlist -IC` instead of
> > >
> > > export ROOT=/ PKGDIR=${PORTDIR}/pkgs/${CTARGET}/cross-tools quickpkg
> > >
> > > `qlist -IC cross-${CTARGET}` ?
> >
> > no. cross-${CTARGET}/glibc is a cross-compiler glibc, not a native one.
> > yes, you can run it through a script to move things around so that it'd
> > basically have the same install as a native glibc, but the existing one
> > is not.
> >
> > it might be useful to have crossdev automatically inject glibc into
> > package.provided for /usr/$CTARGET since attempting to install a native
> > one in there will hit conflicts.
>
> hmm, I always viewed glibc under /usr/$CTARGET as a native target glibc
> which could be copied to the target directly, but now you say it is not?

there are some things which we do not currently install with the cross-
compiler glibc. in the past, we didn't install any /bin or /sbin executables
at all, although that's changed recently. quickly checking the ebuild shows
that none of the locale helper scripts are installed. it wasn't my original
design decision, but i'm open to bringing down the differences.
-mike
Re: /lib/libgcc_s.so.1 does not belong to any package? [ In reply to ]
On Monday 19 March 2012 15:32:18 Mike Frysinger wrote:
> i plan on deprecating the gcc-config logic to only copying to
> /lib if it detects that /usr is split.

gcc-config-1.6 does this now
-mike