MySql AIX-on part 5/9

Szóval a collect2 problémáján elegánsan túllendülünk a '-berok' opcióval, és áttérünk a következő problémá(k)ra.

Ugyebár a libtool ellenkezik a cmake-hit tanításaival, ő kézi erővel állítja el a statikus és a shared libet. Persze amíg van sed és perl, ez kezelhető, de azért zavar tud hozni egy-két apróság:

1. duplikált könyvtárak a linkelésnél (talán csak a hangsúly kedvéért):

        -o libmysqlclient.so\
        CMakeFiles/libmysql.dir/libmysql_exports_file.cc.o\
        -lpthread libclientlib.a ../dbug/libdbug.a ../strings/libstrings.a\
        ../vio/libvio.a ../mysys/libmysys.a -lz\
        /usr/local/lib/libssl.so\
        /usr/local/lib/libcrypto.so\
        /usr/local/lib/libcrypto.so\
        ../dbug/libdbug.a ../mysys/libmysys.a ../strings/libstrings.a\

Mindegy, a shared lib jól jön létre. Remélem, legalábbis.

2. A static lib viszont üres lesz. Megpróbálkozik valami olyasmivel, mint a libtool-ban a convenience library-ból linkelés (merge_archives_mysqlclient.cmake nevű komponens), de talán valami nem sikerül... illetve az is furcsa, hogy először létrehozza, aztán eltörli, és létrehozza másképp... persze mindezt úgy, hogy egyedi scriptek (.txt kiterjesztésű scriptek, hogy viccesebb legyen), makefile-ok és cmake-futások hívogatják egymást...

20140922.1056: Most éppen egy bug25714 nevű programot nem tud összelinkelni. Naná, ilyen névvel...

Hozzászólások

El kell hagynom a süllyedő hajót, de említsük meg, hogy létrejött egy mysql nevű executable, ilyen a 'dump -H' kimenete:

0      /usr/local/lib:/usr/lib            
1      /usr/lib                      libcurses.a         shr42.o
2      /usr/local/lib                libcrypto.so.1.0.1
3      /usr/local/src/mysql-5.5.38/libmysql/.libs
                                     libmysqlclient.so.18
4      /usr/local/lib                libssl.so.1.0.1
5      /usr/local/lib                libstdc++.so.6
6      /usr/local/lib                libz.so.1
7      /usr/local/lib                libcpotlas.so.1
8      /usr/lib                      libpthreads.a       shr_comm.o
9      /usr/lib                      libpthreads.a       shr_xpg5.o
10     /usr/lib                      libc.a              shr.o

Még nem egészen alakias, a curses-nek hátrább kellene lennie (asszem a sorkatonai szolgálat ártott meg nekem 1986/87-ben;)

Most megfogtál, nem tudom, mire gondolsz... olyasféle pluginok keletkeznek, mint:

adt_null.so
auth.so
auth_test_plugin.so
ha_archive.so
ha_blackhole.so
ha_example.so
ha_federated.so
libdaemon_example.so
mypluglib.so
qa_auth_client.so
qa_auth_interface.so
qa_auth_server.so
semisync_master.so
semisync_slave.so
udf_example.so

Ahhoz mar regen jatszottam a dologgal, hogy segiteni is tudjak, a ./configure --help segit megtalalni a megfelelo opciot.

Anno a KDE-nek kellett mert defaultban nem volt ilyen forditasu a mysql, es az akonadi meg egy beepitett mysql szervert lo fel (tudj' isten miert) maganak.
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:


()=() 
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()

Nem mostanaban foglalkoztam ilyesmivel, szoval lehet, hogy azota kivettek, amit en tudok. De abban biztos vagyok, hogy van ilyen opcio, csak pont azert nem akartam belemenni a reszletekbe, mert en utoljara az 5.1-es forrasfaval dolgoztam (ott meg volt configure, es annak volt ilyen opcioja), hogy azota mi valtozott, azt nem tudom, sem KDE-re sem pedig a MySQL forrasbol torteno forditasara nem volt szuksegem az elmult masfel evben, teljesen mas feladatok kotottek le.
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:


()=() 
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()

Nekem az mar tul sok, ha valamit forrassszinten ismerek. Kicsit olyan ez, mint amikor mar nyitottal ra valakire, amikor epp oltozott. Nem biztos, hogy akartad azt a latvanyt.
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:


()=() 
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()

linuxon legalábis működni látszik, ezt kell mondani a cmake-nek:

-DWITH_EMBEDDED_SERVER=1
-DWITH_EMBEDDED_SHARED_LIBRARY=1

mondjuk nem arról van szó, hogy használni akarnám, inkább arról, hogy miért mondjunk le eleve egy feature-ről, ami egyszer valaha jól jöhet.

Közben egyetlen kis kérdés merült fel bennem: ha valami apró alverzió-előrelépés lesz, akkor mi lesz a shared lib verziószáma? 19.0.0 vagy 18.0.0? (Esetleg el vannak tiltva a minor verziószám használatától?)

Ahogy en neztem, keves app hasznalja a minor verzioszamokat a libeknel (ez is valtozo), es inkabb csak a foverzio valtozik. MySQL eseteben ugy tudom, a foverziot szokjak novelni.
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:


()=() 
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()