先日のおちていたところ。
dln.cの
1350 void (*init_fct)(); 1351 1352 init_fct = (void(*)())load((char*)file, 1, 0); 1353 if (init_fct == NULL) { 1354 aix_loaderror(file); 1355 } 1356 if (loadbind(0, (void*)dln_load, (void*)init_fct) == -1) { 1357 aix_loaderror(file); 1358 } 1359 (*init_fct)(); 1360 return (void*)init_fct; 1361 }
の1359だった。load()をみると、
Return Values Upon successful completion, the load and loadAndInit subroutines return the pointer to function for the entry point of the module. If the module has no entry point, the address of the data section of the module is returned.
とかいっている。1353行の判断じゃだめだってことだ。どうすりゃいいんだ。スルーしているloadbind()も気になる。どうマニュアル読んでもよく理解できないけど、必要そうに思えないし、消しても動く。で、そもそも、くだんのチケットと関係ないと。これはあとだな。