about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--config.make.in1
-rw-r--r--configure.in2
-rw-r--r--nptl/ChangeLog3
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h29
5 files changed, 38 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 965d5a4fd4..bf6d207ed4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2003-04-19  Ulrich Drepper  <drepper@redhat.com>
 
+	* configure.in: Add AC_PROG_CXX.
+	* config.make.in (CXX): Define.
+
 	* sysdeps/i386/i686/hp-timing.h (HP_TIMING_PRINT): Change type of
 	__len to size_t to avoid warnings.
 
diff --git a/config.make.in b/config.make.in
index c704cc701d..e9c234a7a6 100644
--- a/config.make.in
+++ b/config.make.in
@@ -84,6 +84,7 @@ force-install = @force_install@
 
 # Build tools.
 CC = @CC@
+CXX = @CXX@
 BUILD_CC = @BUILD_CC@
 CFLAGS = @CFLAGS@
 AR = @AR@
diff --git a/configure.in b/configure.in
index 2ef312304e..300bba65bc 100644
--- a/configure.in
+++ b/configure.in
@@ -676,6 +676,8 @@ if test $host != $build; then
 fi
 AC_SUBST(cross_compiling)
 AC_PROG_CPP
+# We need the C++ compiler only for testing.
+AC_PROG_CXX
 LIBC_PROG_BINUTILS
 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
 
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d7cd8faddb..e5302642b8 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,8 @@
 2003-04-19  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h
+	(DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
+
 	* sysdeps/unix/sysv/linux/unregister-atfork.c
 	(__unregister_atfork): Don't free memory not allocated dynamically.
 
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h b/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
index 4c29c150f7..5d6d7fb9ff 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
@@ -55,7 +55,36 @@ extern void _dl_sysinfo_int80 (void) attribute_hidden;
        "_dl_sysinfo_int80:\n\t"						      \
        "int $0x80;\n\t"							      \
        "ret;\n\t"							      \
+       ".LEND_dl_sysinfo_int80\n\t"					      \
        ".size _dl_sysinfo_int80,.-_dl_sysinfo_int80\n\t"		      \
+       ".previous;\n\t"							      \
+       ".section .eh_frame,\"a\",@progbits\n"				      \
+       ".LSTARTFRAMEDLSI:\n\t"						      \
+       ".long .LENDCIEDLSI-.LSTARTCIEDLSI\n"				      \
+       ".LSTARTCIEDLSI:\n\t"						      \
+       ".long 0\n\t"		/* CIE ID */				      \
+       ".byte 1\n\t"		/* Version number */			      \
+       ".string \"zR\"\n\t"	/* NUL-terminated augmentation string */      \
+       ".uleb128 1\n\t"		/* Code alignment factor */		      \
+       ".sleb128 -4\n\t"	/* Data alignment factor */		      \
+       ".byte 8\n\t"		/* Return address register column */	      \
+       ".uleb128 1\n\t"		/* Augmentation value length */		      \
+       ".byte 0x1b\n\t"		/* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */	      \
+       ".byte 0x0c\n\t"		/* DW_CFA_def_cfa */			      \
+       ".uleb128 4\n\t"							      \
+       ".uleb128 4\n\t"							      \
+       ".byte 0x88\n\t"		/* DW_CFA_offset, column 0x8 */		      \
+       ".uleb128 1\n\t"							      \
+       ".align 4\n"							      \
+       ".LENDCIEDLSI:\n\t"						      \
+       ".long .LENDFDEDLSI-.LSTARTFDEDLSI\n"	/* Length FDE */	      \
+       ".LSTARTFDEDLSI:\n\t"						      \
+       ".long .LSTARTFDEDLSI-.LSTARTFRAMEDLSI\n\t" /* CIE pointer */	      \
+       ".long _dl_sysinfo_int80-.\n\t"	/* PC-relative start address */	      \
+       ".long .LEND_dl_sysinfo_int80-_dl_sysinfo_int80\n\t"		      \
+       ".uleb128 0\n\t"							      \
+       ".align 4\n"							      \
+       ".LENDFDEDLSI:\n\t"						      \
        ".previous");
 #endif