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: