[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Can we upload binaries using libc6 to hamm yet?



On Wed, 23 Apr 1997, Thomas Koenig wrote:

> David Engel wrote:
> 
> >In general, if a package does not provide any public, shared libraries
> >(i.e. shared libraries used by other packages), it should be rebuilt
> >with libc6 using the same package name when all of the libraries it
> >needs have been rebuilt for libc6.
> 
> Suppose I do a bug fix in both frozen and unstable.  What's the
> preferred tactic in that case?
> 
> Upload source-only and libc5 version, wait until that has been processed,
> then upload libc6?

Yes.

> [Warning - question from ignorance]
> 
> On a system which has both libc5 and libc6 installed, I assume that
> some options are needed to select libc5.  Where do these go?
> 
> Or do I need a second machine?

You need to create a fake gcc mode for i486-linuxlibc5. First, _BEFORE_
installing libc6-dev, install libc6 and gcc for libc6. Then, copy all the
libc5-dev files from /usr/include into /usr/local/i486-linuxlibc5/include.
The best way to do this is to use dpkg-deb to unpack the package and then
copy the usr/include directory from there. Then, move the /usr/lib files
from this package into /usr/local/i486-linuxlibc5/lib. Now, you can
uninstall libc5-dev. Remember to use --force-depends - some packages
depend on libc5-dev, when they should depend on libc-dev. After that,
install libc6-dev, and check it works (you will probably need ld.so-1.9.1
to make it work really properly).

The next step is to create a /usr/lib/gcc-lib/i486-linuxlibc5 directory.
Create a subdirectory called "2.7.2.2" (or whatever version of gcc you
have), then symlink all the files from /usr/lib/gcc-lib/i486-linux/2.7.2.2
into it, _EXCEPT_ for "specs". Then copy the specs file I have included
here into that directory.

After that, you need to make sure that the libraries which you have copies
with different sonames (for libc5/libc6) are symlinked into
/usr/local/i486-linuxlibc5/lib. Currently, that just means:-

ln -s /lib/libdl.so.1 /usr/local/i486-linuxlibc5/lib/libdl.so

Now, you're system will compile for libc6 by default, and for libc5 when
you specify "-bi486-linuxlibc5" on the compiler command line.

Clear enough?

-- 
Tom Lees <tom@lpsg.demon.co.uk>			http://www.lpsg.demon.co.uk/
PGP ID 87D4D065, fingerprint 2A 66 86 9D 02 4D A6 1E  B8 A2 17 9D 4F 9B 89 D6
finger tom@master.debian.org for full public key (also available on keyservers)
*asm:
%{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}

*asm_final:
%{pipe:-}

*cpp:
%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE} -I/usr/local/i486-linuxlibc5/include

*cc1:


*cc1plus:


*endfile:
%{!shared:/usr/local/i486-linuxlibc5/lib/crtend.o%s} %{shared:/usr/local/i486-linuxlibc5/lib/crtendS.o%s} /usr/local/i486-linuxlibc5/lib/crtn.o%s

*link:
-m elf_i386 %{shared:-shared}   %{!shared:     %{!ibcs:       %{!static: 	%{rdynamic:-export-dynamic} 	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} 	%{static:-static}}} -L/usr/local/i486-linuxlibc5/lib

*lib:
%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon}      %{!ggdb:-lc} %{ggdb:-lg}}

*libgcc:
%{!shared:-lgcc}

*startfile:
%{!shared:      %{pg:/usr/local/i486-linuxlibc5/lib/gcrt1.o%s} %{!pg:%{p:/usr/local/i486-linuxlibc5/lib/gcrt1.o%s} %{!p:/usr/local/i486-linuxlibc5/lib/crt1.o%s}}}   /usr/local/i486-linuxlibc5/lib/crti.o%s %{!shared:/usr/local/i486-linuxlibc5/lib/crtbegin.o%s} %{shared:/usr/local/i486-linuxlibc5/lib/crtbeginS.o%s}

*switches_need_spaces:


*signed_char:
%{funsigned-char:-D__CHAR_UNSIGNED__}

*predefines:
-D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)

*cross_compile:
0

*multilib:
. ;


Reply to: