[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Emacs 21.3
From: Kazu Yamamoto (山本和彦) <kazu@iijlab.net>
Subject: Re: Emacs 21.3
> おそらく、configure で HAVE_NETBSD_CRT{I,N} を定義する方法はうまく行き
> ません。
すいません。これは、僕の勘違いでした。uebayashi さんのアプローチは正し
く、
From: Kazu Yamamoto (山本和彦) <kazu@iijlab.net>
Subject: Re: Emacs 21.3
> 少なくとも、src/config.in に以下の設定が必要な気がします。
>
> #undef HAVE_NETBSD_CRTI
> #undef HAVE_NETBSD_CRTN
という僕の直感も合っていました。
ただし、src/config.in でいれるべき場所は、
#include config_opsysfile
の前です。
# よく考えれば当たり前。
念のため、コンパイルできるようになる、最小限のパッチを付けておきます。
src/config.in 以外は、uebayashi さんのパッチです。Emacs current へのパッ
チですが、Emacs 21.3 にも当たるでしょう。
なお、Emacs 21.4 に取り込んでもらうには、あまりにも NetBSD に依存して
いると考えます。もっと、汎用的な方法はないでしょうか?
--かず
Index: configure
===================================================================
RCS file: /cvsroot/emacs/emacs/configure,v
retrieving revision 1.111
diff -c -r1.111 configure
*** configure 6 Jun 2003 10:16:42 -0000 1.111
--- configure 17 Jun 2003 14:54:38 -0000
***************
*** 18163,18168 ****
--- 18163,18184 ----
+ # NETBSD: NetBSD's newer run-time linker fix.
+ if test $opsys = netbsd; then
+ if test -f /usr/lib/crti.o; then
+ cat >> confdefs.h <<\EOF
+ #define HAVE_NETBSD_CRTI 1
+ EOF
+
+ fi
+ if test -f /usr/lib/crtn.o; then
+ cat >> confdefs.h <<\EOF
+ #define HAVE_NETBSD_CRTN 1
+ EOF
+
+ fi
+ fi
+
# Set up the CFLAGS for real compilation, so we can substitute it.
CFLAGS="$REAL_CFLAGS"
CPPFLAGS="$REAL_CPPFLAGS"
Index: configure.in
===================================================================
RCS file: /cvsroot/emacs/emacs/configure.in,v
retrieving revision 1.339
diff -c -r1.339 configure.in
*** configure.in 6 Jun 2003 09:03:44 -0000 1.339
--- configure.in 17 Jun 2003 14:54:39 -0000
***************
*** 2497,2502 ****
--- 2497,2512 ----
dnl Fixme: Use AC_FUNC_MEMCMP since memcmp is used. (Needs libobj replacement.)
+ # NETBSD: NetBSD's newer run-time linker fix.
+ if $opsys = netbsd; then
+ if test -f /usr/lib/crti.o; then
+ AC_DEFINE(HAVE_NETBSD_CRTI)
+ fi
+ if test -f /usr/lib/crtn.o; then
+ AC_DEFINE(HAVE_NETBSD_CRTN)
+ fi
+ fi
+
# Set up the CFLAGS for real compilation, so we can substitute it.
CFLAGS="$REAL_CFLAGS"
CPPFLAGS="$REAL_CPPFLAGS"
Index: src/config.in
===================================================================
RCS file: /cvsroot/emacs/emacs/src/config.in,v
retrieving revision 1.187
diff -c -r1.187 config.in
*** src/config.in 6 Jun 2003 10:16:42 -0000 1.187
--- src/config.in 17 Jun 2003 14:54:42 -0000
***************
*** 853,858 ****
--- 853,862 ----
#define INLINE
#endif
+ /* must before config_opsysfile */
+ #undef HAVE_NETBSD_CRTN
+ #undef HAVE_NETBSD_CRTI
+
/* Include the os and machine dependent files. */
#include config_opsysfile
#include config_machfile
Index: src/s/netbsd.h
===================================================================
RCS file: /cvsroot/emacs/emacs/src/s/netbsd.h,v
retrieving revision 1.37
diff -c -r1.37 netbsd.h
*** src/s/netbsd.h 4 Feb 2003 14:03:18 -0000 1.37
--- src/s/netbsd.h 17 Jun 2003 14:54:42 -0000
***************
*** 60,68 ****
--- 60,76 ----
#endif /* not NO_SHARED_LIBS and not ELF */
#if !defined (NO_SHARED_LIBS) && defined (__ELF__)
+ #if defined(HAVE_NETBSD_CRTI)
+ #define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtbegin.o
+ #else
#define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o
+ #endif
#define UNEXEC unexelf.o
+ #if defined(HAVE_NETBSD_CRTN)
+ #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
+ #else
#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o
+ #endif
#undef LIB_GCC
#define LIB_GCC
#endif