FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Development

 
 
LinkBack Thread Tools
 
Old 11-04-2011, 08:30 PM
Daniel Ruoso
 
Default Simplifying bootstrap on circular-dependent packages

I have been thinking about the bootstrapping of pakages lately. I am
involved in bootstrapping a partial system -- no kernel and no libc --
for some architectures for internal use. And I just thought that we
could use one trick to help in the bootstrap of packages that depend
on other shared libraries, this is something we use internally for
other reasons but I guess it could fit here as well.

The basic idea is creating "dummy libraries" that would serve for the
linking but that had no code on it. This would allow the linking to
happen -- of course this only helps in the case where the build
process doesn't run anything from the build-dependency.

Later the other package in the cycle would be built, and the actual
library would be made available instead of the "dummy", and the linker
would find the actual library.

We already extract all that information for dpkg-shlibdeps to work, we
could just build a fake shared library automatically based on that.

What do you think?

daniel


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: CAA8KeO+SDJRcSGxgLTYDDcw+Gas+UXjH9HqV78tSA+k-V7806Q@mail.gmail.com">http://lists.debian.org/CAA8KeO+SDJRcSGxgLTYDDcw+Gas+UXjH9HqV78tSA+k-V7806Q@mail.gmail.com
 
Old 11-05-2011, 11:12 PM
Josselin Mouette
 
Default Simplifying bootstrap on circular-dependent packages

Le vendredi 04 novembre 2011 * 17:30 -0400, Daniel Ruoso a écrit :
> The basic idea is creating "dummy libraries" that would serve for the
> linking but that had no code on it. This would allow the linking to
> happen -- of course this only helps in the case where the build
> process doesn't run anything from the build-dependency.
>
> Later the other package in the cycle would be built, and the actual
> library would be made available instead of the "dummy", and the linker
> would find the actual library.

I don’t think it works for all such cases, because some of the circular
build-dependencies are needed by binaries run at build time. If they
don’t find the needed symbols, you’re doomed.

OTOH I can think of a pair of cases where your idea would work.

--
.'`. Josselin Mouette
: :' :
`. `'
`-
 
Old 11-08-2011, 09:38 PM
Igor Pashev
 
Default Simplifying bootstrap on circular-dependent packages

Hi,

In my humble experience I just used debian/shlibs.local :-)

05.11.2011 01:30, Daniel Ruoso пишет:

I have been thinking about the bootstrapping of pakages lately. I am
involved in bootstrapping a partial system -- no kernel and no libc --
for some architectures for internal use. And I just thought that we
could use one trick to help in the bootstrap of packages that depend
on other shared libraries, this is something we use internally for
other reasons but I guess it could fit here as well.

The basic idea is creating "dummy libraries" that would serve for the
linking but that had no code on it. This would allow the linking to
happen -- of course this only helps in the case where the build
process doesn't run anything from the build-dependency.

Later the other package in the cycle would be built, and the actual
library would be made available instead of the "dummy", and the linker
would find the actual library.

We already extract all that information for dpkg-shlibdeps to work, we
could just build a fake shared library automatically based on that.

What do you think?

daniel





--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4EB9AF83.4050208@gmail.com">http://lists.debian.org/4EB9AF83.4050208@gmail.com
 
Old 11-16-2011, 09:12 AM
Goswin von Brederlow
 
Default Simplifying bootstrap on circular-dependent packages

Daniel Ruoso <daniel@ruoso.com> writes:

> I have been thinking about the bootstrapping of pakages lately. I am
> involved in bootstrapping a partial system -- no kernel and no libc --
> for some architectures for internal use. And I just thought that we
> could use one trick to help in the bootstrap of packages that depend
> on other shared libraries, this is something we use internally for
> other reasons but I guess it could fit here as well.
>
> The basic idea is creating "dummy libraries" that would serve for the
> linking but that had no code on it. This would allow the linking to
> happen -- of course this only helps in the case where the build
> process doesn't run anything from the build-dependency.
>
> Later the other package in the cycle would be built, and the actual
> library would be made available instead of the "dummy", and the linker
> would find the actual library.
>
> We already extract all that information for dpkg-shlibdeps to work, we
> could just build a fake shared library automatically based on that.
>
> What do you think?
>
> daniel

How do you intend to build that fake lib?

I guess it comes down to getting a list of symbols on an existing
architecture (or from the symbols file?), creating a "void symbol;" stub
for each and then building a fake lib for the target arch.

What about C++ where symbols are architecture dependent? I guess you
could detect which symbols are C and which C++, demangle them, insert
extern "C" {} as needed and build using g++.

MfG
Goswin


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 87y5vgml3r.fsf@frosties.localnet">http://lists.debian.org/87y5vgml3r.fsf@frosties.localnet
 
Old 11-16-2011, 09:23 AM
Chow Loong Jin
 
Default Simplifying bootstrap on circular-dependent packages

On 16/11/2011 18:12, Goswin von Brederlow wrote:
> [...]
> How do you intend to build that fake lib?
>
> I guess it comes down to getting a list of symbols on an existing
> architecture (or from the symbols file?), creating a "void symbol;" stub
> for each and then building a fake lib for the target arch.
>
> What about C++ where symbols are architecture dependent? I guess you
> could detect which symbols are C and which C++, demangle them, insert
> extern "C" {} as needed and build using g++.

Do you really need to demangle them? If the fake lib is only going to be used
for linking, surely you could just create a "void mangled_symbol;" stub in C to
achieve the same effect as well?

--
Kind regards,
Loong Jin
 
Old 11-17-2011, 01:24 PM
Goswin von Brederlow
 
Default Simplifying bootstrap on circular-dependent packages

Chow Loong Jin <hyperair@ubuntu.com> writes:

> On 16/11/2011 18:12, Goswin von Brederlow wrote:
>> [...]
>> How do you intend to build that fake lib?
>>
>> I guess it comes down to getting a list of symbols on an existing
>> architecture (or from the symbols file?), creating a "void symbol;" stub
>> for each and then building a fake lib for the target arch.
>>
>> What about C++ where symbols are architecture dependent? I guess you
>> could detect which symbols are C and which C++, demangle them, insert
>> extern "C" {} as needed and build using g++.
>
> Do you really need to demangle them? If the fake lib is only going to be used
> for linking, surely you could just create a "void mangled_symbol;" stub in C to
> achieve the same effect as well?
>
> --
> Kind regards,
> Loong Jin

As said, the mangled symbol can differ between architectures. So if you
take the symbol from one architecture then you need to demangle it there
and mangle it again on the target architecture.

MfG
Goswin


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 87zkfuzv1k.fsf@frosties.localnet">http://lists.debian.org/87zkfuzv1k.fsf@frosties.localnet
 
Old 11-17-2011, 03:51 PM
"John D. Hendrickson and Sara Darnell"
 
Default Simplifying bootstrap on circular-dependent packages

I would like to hear about the question, if you will.

"bootstrapping a partial system -- no kernel and no libc"

How does your local project indicate change wished or needed in debian's package build system? Or
in what way is it a request for special exception in build scripts?


I'm unsure why you [need to / did] edit libs. I've done so by hand down to the asm level and with
lib managers too - and with just shell scripts as libs runtime


But what are you doing? And what are you filing for?



* To: debian-devel@lists.debian.org
* Subject: Simplifying bootstrap on circular-dependent packages
* From: Daniel Ruoso <daniel@ruoso.com>
* Date: Fri, 4 Nov 2011 17:30:23 -0400
* Message-id: <CAA8KeO+SDJRcSGxgLTYDDcw+Gas+UXjH9HqV78tSA+k-V7806Q@mail.gmail.com>

I have been thinking about the bootstrapping of pakages lately. I am
involved in bootstrapping a partial system -- no kernel and no libc --
for some architectures for internal use. And I just thought that we
could use one trick to help in the bootstrap of packages that depend
on other shared libraries, this is something we use internally for
other reasons but I guess it could fit here as well.

The basic idea is creating "dummy libraries" that would serve for the
linking but that had no code on it. This would allow the linking to
happen -- of course this only helps in the case where the build
process doesn't run anything from the build-dependency.

Later the other package in the cycle would be built, and the actual
library would be made available instead of the "dummy", and the linker
would find the actual library.

We already extract all that information for dpkg-shlibdeps to work, we
could just build a fake shared library automatically based on that.

What do you think?

daniel


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4EC53B77.5080808@cox.net">http://lists.debian.org/4EC53B77.5080808@cox.net
 
Old 11-17-2011, 04:16 PM
Chow Loong Jin
 
Default Simplifying bootstrap on circular-dependent packages

On 17/11/2011 22:24, Goswin von Brederlow wrote:
> As said, the mangled symbol can differ between architectures. So if you
> take the symbol from one architecture then you need to demangle it there
> and mangle it again on the target architecture.

Ah, my mistake, I forgot that the purpose of the fake lib was for bootstrap and
thought that it was going to be built based on the real lib during the same build.

--
Kind regards,
Loong Jin
 

Thread Tools




All times are GMT. The time now is 05:54 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org