MySql AIX-on: pfs_hton

Ugyebár itt tartottunk az imént: http://hup.hu/node/135300
Jobban megnézve az első és második menet xref-fájljáit, az tűnik fel, hogy az elsőben pfs_hton nem fordul elő. De a jó collect2 mégis úgy érzi, hogy az pedig kell...

ilyen egyébként (ha_perfschema.cc):


handlerton *pfs_hton= NULL;

Hozzászólások

Mondjuk az kicsit gyanús, hogy miért kell egy NULL-pointernek külön inicializáló programrész... Persze, mint tudjuk, a C++ messze túl van az emberi ésszel megérthetö tartományon... Például lehet, hogy valamilyen class-initializer-röl van szó?
Ugyhogy a következö lépés az Assembly source tanulmányozása lesz. Meg a 'collect2 -debug' outputjának tanulmányozása.

Már haladt egy kicsit a folyamat, lásd a következő bejegyzésben... Most ott tartunk, hogy az alapvető hiba nem a MySql-ben van, nem is az Aix-ben, hanem a collect2-ben (amiből az is következik, hogy mindaz az idegeskedés/erőfeszítés, amit a különféle okos beszólások megválaszolására pazaroltam az AIX és a MySql verziószámaival kapcsolatban tökéletesen felesleges volt... bocs, ezt nem neked kellett volna írnom)

Intermezzo: meglepődik valaki, ha azt mondom, hogy a gnu binutils telepítése megkavarta a fordítást? Nyilván nem, de legalább ebben az esetben tudjuk, hogy a libtool készítőjét kell lefejezni. Az meg szerencsére én vagyok.

20140919.0649: Na ez lett:


/* Ha AIX-on vagyunk, akkor esetleg több inkompatibilis 'nm(1)' lehet a gépünkön
   szerteszét, most célozzuk meg a gyárit
 */
#if defined (_AIX)
    fej[fejdb++] = "/usr/bin/nm";
    fej[fejdb++] = "-X32_64";
    fej[fejdb++] = "-BCpg";
#else
    fej[fejdb++] = "nm";
    fej[fejdb++] = "-Bpg";
#endif

Azt a hipotézist állítom fel, hogy a collect2 nekiugrik a '*.a'-nak mint tót az anyjának, és az összes konstruktornak/destruktornak látszó dolgot kiszedi belőle, akár belerakta a linker az exébe, akár nem.