about summary refs log tree commit diff
path: root/sysdeps/wordsize-32
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/wordsize-32')
-rw-r--r--sysdeps/wordsize-32/divdi3.c1
-rw-r--r--sysdeps/wordsize-32/lldiv.c9
2 files changed, 9 insertions, 1 deletions
diff --git a/sysdeps/wordsize-32/divdi3.c b/sysdeps/wordsize-32/divdi3.c
index b8a8aeecc5..8ca9fe4c0d 100644
--- a/sysdeps/wordsize-32/divdi3.c
+++ b/sysdeps/wordsize-32/divdi3.c
@@ -294,6 +294,7 @@ __divdi3 (DWtype u, DWtype v)
     w = -w;
   return w;
 }
+INTDEF(__divdi3)
 
 DWtype
 __moddi3 (DWtype u, DWtype v)
diff --git a/sysdeps/wordsize-32/lldiv.c b/sysdeps/wordsize-32/lldiv.c
index b097adc530..2da982ca57 100644
--- a/sysdeps/wordsize-32/lldiv.c
+++ b/sysdeps/wordsize-32/lldiv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,13 @@
 
 #include <inttypes.h>
 
+#ifdef SHARED
+/* This is an ugly trick.  We cause the C code generated for the code
+   in lldiv.c to use __divdi3_internal instead of __divdi3 by defining
+   an alias on the assembler level.  */
+asm ("__divdi3 = __divdi3_internal");
+#endif
+
 #include <sysdeps/generic/lldiv.c>
 
 #undef imaxdiv