- NevemTeve blogja
- A hozzászóláshoz be kell jelentkezni
- 1101 megtekintés
Hozzászólások
Akartam már kérdezni, hogy önként vagy muszájból kínzod magad ezzel már jó ideje? :)
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Ebben a konkrét esetben két dolog találkozott:
- van egy csomó AIX-os gépünk (persze virtuális)
- kellene egy mysql szerver valami kis teszteléshez/fejlesztéshez
Csak annyi a feladat, hogy a kettőt összekombináljuk... nyilván vannak akadályozó játékosok is a történetben, úgymint:
AIX -- egzotikus rendszer, (bár többé-kevésbé unix)
C++ -- szívás, nem is kell magyarázni
cmake -- eddig még nem volt vele dolgom, remélem ez nem csak első, hanem az utolsó alkalom is.
- A hozzászóláshoz be kell jelentkezni
Ha elég egy régebbi verzió akkor itt találsz:
http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.ht…
- A hozzászóláshoz be kell jelentkezni
Úgy értettem, hogy sejtem, hogy azért mert hozzájuk férsz, de az nem volt tiszta, hogy érdeklődésből és kalandból (akkor respect) foglalkozol egy ilyen szabad szoftver szempontból barátságtalan környezetben szabad szoftver futtatással, vagy muszájból (részvét).
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
"szabad szoftver szempontból barátságtalan környezetben"
Azt azert tegyuk hozza, hogy ez certified UNIX, teljesen szabvanyos kornyezet.
- A hozzászóláshoz be kell jelentkezni
En megprobalnek egy kicsit regebbi MySQL-t osszereszelni elobb, mondjuk olyan 5.0 korulit, abban meg nem volt benne ez a cmake-s hulyeskedes. Az autotools meg jo baratod, ha jol emlekszem.
Aztan az azon tanultakat szepen at lehet vinni az ujabb rendszerekre.
Btw, amik igy kiderulnek hianyossagok, azt le szoktad reportolni?
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
Csak egy kis apróság, ami a mai jókedvemet meghozta: utimes-sel próbálom beállítani a módosítási időt, pl azért, hogy a 'make' megbéküljön, de valamiért nem sikerül, a 'cél' fájl mindig régebbi marad, mint a 'forrás'.
Naná, manual írja is:
Microsecond time stamps are not implemented, even though the utimes subroutine provides a way to specify them.
Tehát ez így nem lesz sose jó... még azt kellene megnézni, hogy pl egy 'cp -p' hogy csinálja ugyanezt.
Szerk: most úgy tűnik, hogy
1. a make nem nézi a mikroszekundumot
2. a 'cp -p' is csak 'másodperc erejéig' másolja az időpecsétet
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy most végre fogtam valamit: ugyebár az 'inline' kulcsszó azt jelenti, hogy vagy inline, vagy nem. Különösen ha a gcc különféle opcióit és üzemmódjait is figyelembe vesszük. Meg azt, hogy ez egy vegyes c/c++ projekt. Szóval a vége az, hogy a rt_mbr.c.o nevű objekt extern-nek veszi a 'my_ulonglong2double'-t, ezért elmegy a linker rezolválni, és beránt... hát, beránt valamilyen objekt modult, amelyikben éppen benne van...
szóval vissza a kályhához, ez most nem lesz inline function, hanem inkább #define
volt:
inline double my_ulonglong2double(unsigned long long A) { return (double)A; }
lett:
#define my_ulonglong2double(ull) ((double)(ull))
Kieg: az include/my_global.h-ban történik mindez.
- A hozzászóláshoz be kell jelentkezni
Valahogy így néz ki egy 'dump -H' kimenete egy decensen linkelt mysiam_ftdump esetén:
INDEX PATH BASE MEMBER
0 /usr/local/lib:/usr/lib
1 /usr/local/lib libgcc_s.a shr.o
2 /usr/local/lib libstdc++.so.6
3 /usr/local/lib libz.so.1
4 /usr/local/lib libcpotlas.so.1
5 /usr/lib libpthreads.a shr_comm.o
6 /usr/lib libpthreads.a shr_xpg5.o
7 /usr/lib libc.a shr.o
Persze készen azért nem vagyunk, most éppen a pfs-t szenved feloldatlan externektől.
PS: mindenkinek köszi a jószándékú javaslatokat, de korábbi verziókról és bináris disztribúciókról szó sem lehet (így is elég gány az egész;)
- A hozzászóláshoz be kell jelentkezni
Nézzetek hülyének, köpjetek le, de mondjátok meg, miről híres a Nagy Levin!
Akarom mondani, miért linkelődött össze jól a pfs-t, amikor a libperfschema.a -ból kézikusan kitöröltem két objektet (ha_perfschema.cc.o és pfs_engine_table.cc.o).
(Mondjuk ilyet épeszű ember nem csinál, de most rólam van szó...)
A valószínű ok az, hogy az egyes modulok export listája nem diszjunkt (legalábbis a kézi beavatkozás előtt nem volt az), így a linkelés nemdeterminisztikus.
- A hozzászóláshoz be kell jelentkezni
A győztes (12 előfordulás) ez:
c++filt _ZN16PFS_engine_tableD2Ev
PFS_engine_table::~PFS_engine_table()
- A hozzászóláshoz be kell jelentkezni
Note to self (feljegyzés a polcnak): már van 'explist' és 'implist' programocska, ami a 'nm -BCpg' kimenetét szűri, de jó lenne egy olyan is, ami a teljes kimenetet megőrzi, legfeljebb rendezi típus+név szerint...
Valamint nyomozni, esetleg aktivizálta magát valami olyasmi linker opció, mint a '--whole-archive' a gnu-ld-ben?
- A hozzászóláshoz be kell jelentkezni
Bevallom az utolsó bejegyzéseidből kb semmit nem értettem, de ettől függetlenül szent csodálattal követem tevékenységedet :)
- A hozzászóláshoz be kell jelentkezni
(akkor jó, lesz, ha nem adom fel, még szégyenben maradnék:)
- A hozzászóláshoz be kell jelentkezni
Mostan azt kellene megnézni, hogy az alábbi kettő közül miért működik az egyik, és pusztul meg a másik.
jó:
ld -o test-pfs-t -brtl -bnortllib -bipath -bernotok\
-bloadmap:loadmap -bmap:map -bxref:xref -bsxref:sxref -bcalls:calls\
-b32 CMakeFiles/pfs-t.dir/pfs-t.cc.o \
/usr/local/src/mysql-5.5.38/storage/perfschema/libperfschema.a \
/usr/local/src/mysql-5.5.38/unittest/mytap/.libs/libmytap.a \
/usr/local/src/mysql-5.5.38/mysys/libmysys.a \
/usr/local/src/mysql-5.5.38/strings/.libs/libstrings.a \
/usr/local/lib/libgcc_s.a \
/usr/lib/libpthreads.a \
/usr/lib/crt0.o \
/usr/lib/libc.a
rossz:
g++ -o test-pfs-t -Wl,-brtl -Wl,-bnortllib -Wl,-bipath -Wl,-bernotok\
-Wl,-bloadmap:loadmap -Wl,-bmap:map -Wl,-bxref:xref -Wl,-bsxref:sxref -Wl,-bcalls:calls\
-maix32 CMakeFiles/pfs-t.dir/pfs-t.cc.o \
/usr/local/src/mysql-5.5.38/storage/perfschema/libperfschema.a \
/usr/local/src/mysql-5.5.38/unittest/mytap/.libs/libmytap.a \
/usr/local/src/mysql-5.5.38/mysys/libmysys.a \
/usr/local/src/mysql-5.5.38/strings/.libs/libstrings.a \
-pthread
Ebben szvsz a truss fog segíteni, ha elárulja, hogy milyen a paraméterezés, amikor a g++ hívja a ld-t.
- A hozzászóláshoz be kell jelentkezni
Tipp: a g++ -nak van egy "-v" kapcsoloja, amivel o maga is el tudja arulni, mit mivel hiv... (think)
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni