Intel の Linux 用 Fortran compiler を FreeBSD で使おうとするとリンクでコケるという件。 Fortran compiler のライブラリ libifcore.a 中に undefined な関数があるのが問題であった。 この関数は for_pause.o の中で使われている IO_putc および IO_getc で、 Linux ではこれが libc 中に存在しているが FreeBSD の libc には存在していないというあたりが原因だろう。
xxxxxxx-afs1{shun(p5)}1050: nm /usr/compat/linux/lib/libc-2.2.4.so|grep IO_putc
0007511c T _IO_putc
xxxxxxx-afs1{shun(p5)}1051: nm /usr/lib/libc.a |grep IO_putc zsh
xxxxxxx-afs1{shun(p5)}1052: uname -a zsh
FreeBSD xxxxxxx-afs1.kek.jp 5.2.1-RELEASE-p1 FreeBSD 5.2.1-RELEASE-p1 #1: Wed Ma
r 3 15:52:56 JST 2004 shun@xxxxxxx-afs1.kek.jp:/usr/obj/home3/src/sys/PIPEO
RGAN i386
この for_pause を使わずに済めば link 問題は回避できるのかと中を見てみると 添付のようになっていて pause しなければよい/しようとすると引っかかる?
こんなもんで確かめられるんだが…。 Fortran の pause って何に使うんだっけ?(ばき)
write(*,*) "test"
c pause
end
send-pr ものかのぅ…
for_pause.o:
U _IO_getc
U _IO_putc
U __errno_location
U __stdinp
U __stdoutp
000002a6 t bg_paused
U fflush
U fileno
U for__acquire_lun
00000380 d for__asynch_mask
U for__release_lun
00000080 d for_diag_rz_msg_table
U for_exit
00000000 T for_pause
U fprintf
U fputs
U getpid
U getsockopt
U isatty
00000060 d lf_units.565
U pause
U signal
U strncmp
[referer:
The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file.
]