20130906.1951: Szóval valami olyasmi, hogy amikor convenience library-t csinálunk, akkor a belekerülő elemeket egyediség szempontjából szűrni kell (vagyis először rendezni), és a duplákat átnevezni. Az átnevezés lényege, hogy lt<sorszám>- prefixet teszünk elé -- ha isten ments már volt neki, és mégis így is dupla, akkor nem teszünk újabb prefixet, csak egy másikat kap: mondjuk elsősorban végignézzük a listát, és megkeressük az eddigi maximumot. Hát voltam már boldogabb is.
20130912.1848: Működik az átnevezgetés (esetünkben symlinkelés), örülünk. Fáradozásunk jutalmaként a 'dump -H mc' ilyet ír:
INDEX PATH BASE MEMBER
0 /usr/local/lib:/usr/lib:/lib
1 /usr/local/lib libgcc_s.a shr.o
2 /usr/local/lib libglib-2.0.so.0
3 /usr/local/lib libiconv.so.2
4 /usr/local/lib libintl.so.8
5 /usr/local/lib libpcre.so.0
6 /usr/local/lib libslang.so.2
7 /usr/local/lib libz.so.1
8 /usr/local/lib libcpotlas.so.1
9 /usr/lib libpthread.a shr_comm.o
10 /usr/lib libpthread.a shr_xpg5.o
11 /usr/lib libc.a shr.o
Mindenkiről tudjuk, hogy honnan jön, melyik verzió, nincs futásidejű keresgélés... ez már kb olyan, mint amit hétköznapi ésszel el is várnánk;)
20130913.1005 Most jut eszembe, hogy nincs kész az a rész, hogy ha két lt123-foo.o van, akkor ne lt201-lt123-foo.o és lt202-lt123-foo.o legyen belőlük, hanem csak lt201-foo.o és lt202-foo.o (tudom, erre szokták azt mondani, hogy 'irigylem a problémáid'))
20130914.1748 Még egy szépséghibát látok: a rendezésnek is a név 'törzse' (nem pedig egésze) szerint kellene történnie, pl:
alfa, beta, lt120-alfa, lt130-beta
akkor a rendezett állapot így nézzen ki:
alfa, lt120-alfa, beta, lt130-beta
azután az átnevezett állapot:
lt131-alfa, lt132-alfa, lt133-beta, lt134-beta
persze először kell egy teszteset, ami kimutatja, hogy jelenleg nem így működik, utána pedig látható rajta a változás.
- NevemTeve blogja
- A hozzászóláshoz be kell jelentkezni
- 726 megtekintés
Hozzászólások
FYI, make V=1, vagy ./configure --disable-silent-rules, es akkor nem rejti el a commandlinet.
--
|8]
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Köszi, azt hiszem, ez nagyon hasznos lesz még jópár nyomozásnál!
- A hozzászóláshoz be kell jelentkezni
FYI, az ojjektum-unikvitast (hudeszepmagyarszo!) a libtool+automake paros tobbnyire ugy oldja meg, hogy ltpath_to_dir_filename.o, illetve lib eseten libpath_to_blah_blah.a lesz belole.
Tehat ha van egy lib/foo.c -d meg egy src/akarmi/foo.c, akkor abbo ltlib_foo.o illetve ltsrc_akarmi_foo.o lesz.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Ez is egy lehetőség, az a libtool, amiből én vettem a koncepciót, az sorszámokat használt, végül is egész csomó duplikátumom lett, főleg a végén, amikor a libinternal.a-ba összeöntötte az összes objektet, így lett egy csomó azonos (vagy azonos néven különböző tartalmú). A végső szépséges eredményben ilyenek vannak:
rw-r--r-- 0/0 7159 12 Sep 11:56 2013 lt119-lt1-common.o
rw-r--r-- 0/0 7159 12 Sep 11:56 2013 lt120-lt1-common.o
rw-r--r-- 0/0 7159 12 Sep 11:56 2013 lt121-lt1-common.o
rw-r--r-- 0/0 8377 12 Sep 11:56 2013 lt122-lt2-common.o
rw-r--r-- 0/0 8377 12 Sep 11:56 2013 lt123-lt2-common.o
rw-r--r-- 0/0 8377 12 Sep 11:56 2013 lt124-lt2-common.o
rw-r--r-- 0/0 2995 12 Sep 11:56 2013 lt125-lt3-common.o
rw-r--r-- 0/0 2995 12 Sep 11:56 2013 lt126-lt3-common.o
rw-r--r-- 0/0 2995 12 Sep 11:56 2013 lt127-lt3-common.o
Szerk:
Próbából megnéztem a 'gyári' libtool eredményét máshol, ott ugyanez:
rw-r--r-- 0/0 2008 Sep 9 10:18 2013 common.o
rw-r--r-- 0/0 2008 Sep 9 10:18 2013 lt11-common.o
rw-r--r-- 0/0 2008 Sep 9 10:18 2013 lt87-common.o
rw-r--r-- 0/0 4212 Sep 9 10:18 2013 lt120-lt2-common.o
rw-r--r-- 0/0 4212 Sep 9 10:18 2013 lt2-common.o
rw-r--r-- 0/0 4212 Sep 9 10:18 2013 lt44-lt2-common.o
rw-r--r-- 0/0 4408 Sep 9 10:18 2013 lt150-widget-common.o
rw-r--r-- 0/0 4408 Sep 9 10:18 2013 lt74-widget-common.o
rw-r--r-- 0/0 4408 Sep 9 10:18 2013 widget-common.o
rw-r--r-- 0/0 4908 Sep 9 10:18 2013 lt1-common.o
rw-r--r-- 0/0 4908 Sep 9 10:18 2013 lt119-lt1-common.o
rw-r--r-- 0/0 4908 Sep 9 10:18 2013 lt43-lt1-common.o
(Ezek szerint ő sem kezeli a többszörös prefixek esetét.)
Szerk: ilyen lett, amikor bevezettem a duplaprefix-mentesítést:
rw-r--r-- 0/0 7159 13 Sep 16:32 2013 lt119-common.o
rw-r--r-- 0/0 7159 13 Sep 16:32 2013 lt120-common.o
rw-r--r-- 0/0 7159 13 Sep 16:32 2013 lt121-common.o
rw-r--r-- 0/0 8377 13 Sep 16:32 2013 lt122-common.o
rw-r--r-- 0/0 8377 13 Sep 16:32 2013 lt123-common.o
rw-r--r-- 0/0 8377 13 Sep 16:32 2013 lt124-common.o
rw-r--r-- 0/0 2995 13 Sep 16:32 2013 lt125-common.o
rw-r--r-- 0/0 2995 13 Sep 16:32 2013 lt126-common.o
rw-r--r-- 0/0 2995 13 Sep 16:32 2013 lt127-common.o
rw-r--r-- 0/0 9435 13 Sep 16:32 2013 lt213-widget-common.o
rw-r--r-- 0/0 9435 13 Sep 16:32 2013 lt214-widget-common.o
rw-r--r-- 0/0 9435 13 Sep 16:32 2013 lt215-widget-common.o
- A hozzászóláshoz be kell jelentkezni