[linux] glibc-2.2.5 a 2.3.2 sucastne na jednom systeme -ako na to?
peto
fodrek na kasr.elf.stuba.sk
Pondělí Srpen 23 16:52:16 CEST 2004
Vdaka za rady!
----- Original Message -----
From: "Matus UHLAR - fantomas" <uhlar na fantomas.sk>
To: <linux na lists.linux.sk>
Sent: Monday, August 23, 2004 3:56 PM
Subject: Re: [linux] glibc-2.2.5 a 2.3.2 sucastne na jednom systeme -ako na
to?
> On 23.08 13:45, peto wrote:
> > Po vsetkych pokusoch a radach zistenych cez google stale nedokazem
> > spojaznit- resp. spustit instalator OO.org 1.1.2CS (mam 1.1.0 a poslal
> > som bugreport na podporu export/import z mathtype, ktorym sa po vydani
> > 1.1.1 aj zaoberali), ktory tvrdi, ze potrebuje glibc-2.2.0 a vyssie ale
> > ldd ukazuje, ze potrebuje GLIBC_PRIVATE, ktory je az v glibc-2.3.0
> > skusal som instralovat glibc-2.3.3 ale bez uspechu - potrebuje novsie
> > verzie make a podobne. (mam MDK9.0) s novou verziou GLIBCPP, ktore
> > potrebovalo kradio, som si poradil instalaciou noveho gcc(mam paralelne
> > aj stare) a prekopirovanim libstdc++ do /lib. S glibc-2.3.2, ale boli
> > problemy ako hrom
>
> ake problemy?
tie su ocislovane
>libc je jeden z najdolezitejsich balikov na instalacii a
> nemozes sa s nou len tak hrat, skusal si ju upgradnut? Obavam sa ze kym OO
> nevyriesia dany problem, budes musiet pouzit novsi Mdk (alebo nieco ine)
> alebo si ponechat starsiu verziu OO
> > 1. bolo treba pridat ",..." ako posledny parameter v sscanf, co je dost
> > divne
> kam? ... sa pridava len do deklaracie funkcie... ak potrebujes deklarovat
> sscanf, zrejme je chyba v tom ze nepouzivat hlavickove subory a mal by si.
v distribucii glibc-2.3.2 je v adresarai stdio-common subor sscanf.c a v nom
bolo
...
/#include <stdarg.h>
#include <stdio.h>
#ifdef USE_IN_LIBIO
# include <libio/iolibio.h>
# define __vsscanf(s, f, a) _IO_vsscanf (s, f, a)
#endif
/* Read formatted input from S, according to the format string FORMAT. */
/* VARARGS2 */
int
sscanf (s, format)
const char *s;
const char *format;
{
va_list arg;
int done;
va_start (arg, format);
done = __vsscanf (s, format, arg);
va_end (arg);
return done;
}
libc_hidden_def (sscanf)
#ifdef USE_IN_LIBIO
# undef _IO_sscanf
/* This is for libg++. */
strong_alias (sscanf, _IO_sscanf)
#endif
...
ale malo tam byt
int sscanf (const char *s, const char *format,...) lebo inak "vystekaval"
kompilator, ze pouzivam va_start vo funkcii s pevnym poctom parametrov
> > 2. kompilacia presla v poriadku,ale po zmene libc.so.6 odkazom na
> > libc-2.3.2 s pridanim linku ld-linux.so.2 na ld-2.3.2 ci rozne
komibancie
> > starych a novych verzii glibc aj dynamickeho linkera neslo bootovat -
musia
> > tam byt stare verzie oboch.
>
> kombinovat dve verzie libs je kua riziko, radsej to nerob.
Ale ved ja som zmenil len default dynamicky linker a glibc a aj s oboma
novymi verziami to nejde.
> > 3. inu velkost suborov som dostal pri pouziti kernel headers v
/usr/src/,
> > ale ani to nepomohlo,
>
> to tiez nerob, moze to narobit dalsiu paseku.
samozrejme, ze moze, ale v navode to odporucali ak sa kernel nevie dohodnut
z libs. Este ma napadlo skompilovat kerenl s novymi libc a v nom bootnut
nove libc.
> > 4. nepomohla ani rada na net-e, kde potrebovali mat sucastne glibc-2.0 a
> > glibc-2.1 a trvrdili, ze to ide cez instalaciu seconadry glibc do
> > /usr/local/lib/glibc2 (mam tam link na non-root particiu, kde mam
> > nainstalovane glibc) a nastavenia LD_* premennych v scripte, ktory
spusti
> > instalotok
> > nech nastavujem ako nastvujem LD_PRELOAD, LD_LIBRARY_PATH ,
LD_PRELOAD_PATH
> > a ewste aj ine LD_* parametre nedokazem spusit instalator? bud chyba
> > GLIBC2.3, alebo, ak su nastavene cesty ku spravnemu libc, chyba
> > GLIBC_PRIVATE, ktore libc-2.3.2 ziskava z dynamickeho linkera ld-2.3.2,
> > lenze stale je ako linker ld-.2.2.5.Teda najvacsi problem je asi
dynamicka
> > zmena dynamickeho linker-a.
Neviem ci niekde neexistuje nedokumentopvana volba LD_LINKER alebo podobne .
Pruser moze byt v tom, ze v tom navode len povedali, ze sa treba s LD*
pohrat a potom bola reakcia, ze uz to ide a navyse povodny linker bol z
novsej verzie libc.
> uff, toto moze byt vselicim... mozem odporucit len skusat albeo sa na to
> vybodnut. Pripadne si skontrolovat ci niekde nerobis chyby.
ani nie lebo ldd jasne ukazuje, ze symbol GLIBC_PRIVATE v novej verzii glibc
je uvedeny pri zavislosti glibc na novej verzii ld dokonca ju najde aj s
cestou.
Vdaka Peto
Další informace o konferenci linux