[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