[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbsd-mg2] Re: regress/sys/kern/execve/Makefile



UCHIYAMA Yasushi <uch@nop.or.jp> writes:
> 今のレポジトリに入っている、このパッチって必要ないですよね?

> Index: regress/sys/kern/execve/Makefile
> ===================================================================
> RCS file: /cvsroot/hpcmips/regress/sys/kern/execve/Makefile,v
> retrieving revision 1.3
> diff -u -r1.3 Makefile
> --- Makefile	1999/08/25 12:10:55	1.3
> +++ Makefile	1999/08/31 12:03:40
> @@ -7,7 +7,7 @@
>  
>  .include <bsd.own.mk>		# May define DESTDIR in mk.conf..
>  .if defined(DESTDIR)
> -LDLIBS+= -lgcc -lc -lgcc ${LIBCRTEND}
> +LDLIBS+= -lgcc -lc ${LIBCRTEND}

一般的にはlibgccとlibcは相互に依存しているようなので、リンク時には"-lgcc
-lc -lgcc"が必要だと思います。(添付の cc -v の出力を参照。)

soft-float関係のライブラリをlibgccに入れていたときにはこうしないとリンク
できなかったのでMakefileを修正してあります。現在のライブラリの構成だと-
gcc -lcでもシンボルは解決できるとは思いますが。

何を言いたいかというと、

    1. -lgcc -lc -lgcc は一般的には必要である(と思う)
    2. regress/sys/kern/execveは偶然 -lgcc -lc でも問題のないライブラリ
       しか使っていないのではないか
    3. 1.,2.が正しければ元に戻す必然性はないのではないか(一般的に正しい
       記述方法にしたのだから)

ということです。

[cc -v hello.cの出力]

Using builtin specs.
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release)
 /usr/libexec/cpp -lang-c -v -undef -D__GNUC__=2 -D__GNUC_MINOR__=91 -Di386 -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__ -D__i386__ -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__ -D__i386 -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386) hello.c /tmp/cc6THxrf.i
GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (80386, BSD syntax)
#include "..." search starts here:
#include <...> search starts here:
 /usr/include
End of search list.
 /usr/libexec/cc1 /tmp/cc6THxrf.i -quiet -dumpbase hello.c -version -o /tmp/ccQnCfAm.s
GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release) (i386-netbsd) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release).
 as -o /tmp/ccsv3uJu.o /tmp/ccQnCfAm.s
 /usr/libexec/collect2 -e start -dc -dp /usr/lib/crt0.o -L/usr/libexec /tmp/ccsv3uJu.o -lgcc -lc -lgcc

篠原