PLD i male, okrojone biblioteki

Marcin Laszewski laser at lublin.tpsa.pl
Sat May 18 08:22:19 CEST 2002


Witam,

Zainstalowa³em sobie PLD i przy okazji mia³em okazjê zapoznaæ siê
z jednodyskietkowym programem instalacyjnym. Wygl±da na to, ¿e
jego autorzy wiedz± co robi±.

A ja, niestety, nie do koñca, wiêc zwracam siê z pro¶b± o pomoc
i wyja¶nienie w czym tkwi problem.


Chcia³em utworzyæ minimaln± wersjê libc która pozwoli³aby na prawid³owe
dzia³anie jednej tylko komendy '/bin/ls'. Znalaz³em w plikach Debian-a
program 'mklibs.sh' który przegl±da wskazane pliki wykonywalne, znajduje
wykorzytywane przez nie symbole na podstawie których potem wybierane
s± odpowiednie modu³y z bibliotek *pic* i tworzone ¶± z nich biblioteki
dynamiczne. Niestety ci±gle mu co¶ brakuje. Czy mógliby¶cie zapoznaæ siê
z wynikami i podpowiedzieæ w czym tak naprawdê tkwi problem i jak sobie
z nim poradziæ?


# Wynik dzia³ania programu:
#-----------------------------------------------
#!/bin/sh

# Katalog na tworzone biblioteki:
mkdir 1

# Tworzenie bibliotek z zawarto¶ci potrzebn± do uruchomienia
# programu '/bin/sh'
./mklibs.sh --verbose --dest-dir 1 /bin/ls
#-----------------------------------------------


# Komunikaty jakie wy¶wietla pow¿szy skrypt:

Initializing data objects... done.
Constructing dependency graph... (LALN) done.
Eliminating cycles... () done.
Make small lib from /usr/lib/libc_pic.a in 1/libc-2.2.5.so.

++ cat /tmp/,mklibs.2545/lib-symbols-to-include
++ sed 's/^/-u/'
++ echo /lib:/usr/lib
++ sed -e 's/::*/:/g' -e 's/^://' -e 's/:$//' -e 's/:/ -L/g'
++ cat /tmp/,mklibs.2545/lib-dependencies
++ sed 's/^/-l/'
+ gcc -nostdlib -nostartfiles -shared -Wl,-soname=libc.so.6 -uabort -u__assert_fail -ubindtextdomain -ucalloc -uclosedir -u__ctype_b -u__ctype_get_mb_cur_max -u__cxa_atexit -udcgettext -u__deregister_frame_info -u__errno_location -uerror -uexit -ufclose at GLIBC_2.0 -ufclose@@GLIBC_2.1 -uferror -ufnmatch at GLIBC_2.0 -ufnmatch@@GLIBC_2.2.3 -u__fpending -ufprintf -ufputs -ufree -ufwrite -ugetenv -ugetgrgid -ugetgrnam -ugetopt_long -ugetpwnam -ugetpwuid -ugettimeofday -uioctl -u_IO_putc -uisatty -uiswprint -u__libc_start_main -ulocaltime -u__lxstat64 at GLIBC_2.1 -u__lxstat64@@GLIBC_2.2 -umalloc -umbrtowc -umbsinit -umemcpy -u__mempcpy -umemset -u_obstack_begin -u_obstack_newchunk -uopendir -uoptind -uprintf -uputs -uqsort -ureaddir64 at GLIBC_2.1 -ureaddir64@@GLIBC_2.2 -ureadlink -urealloc -u__register_frame_info -usetlocale -usprintf -ustderr -ustdout -ustrchr -ustrcmp -ustrcoll -ustrcpy -u__strdup -ustrftime -ustrncasecmp -ustrncmp -ustrncpy -ustrrchr -u__strtol_internal -u__strtoul_internal -ustrverscmp -utextdomain -utime -uwcwidth -u__xstat64 at GLIBC_2.1 -u__xstat64@@GLIBC_2.2 -o /tmp/,mklibs.2545/lib-so /usr/lib/libc_pic.a /lib/ld-2.2.5.so -lgcc -L1 -L/lib -L/usr/lib
/usr/bin/ld: /tmp/,mklibs.2545/lib-so: undefined versioned symbol name getgrgid_r at GLIBC_2.0
/usr/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status
./mklibs.sh: install-small-lib: gcc or objcopy failed.

Pozdrawiam, # To ju¿ pisze ja, a nie program!

-- 
ml
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mklibs.sh
Type: application/x-sh
Size: 26319 bytes
Desc: not available
Url : /mailman/pipermail/feedback/attachments/20040626/12a53d72/mklibs.sh


More information about the feedback mailing list