summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2019-11-10 22:23:28 +0000
committerguenther <guenther@openbsd.org>2019-11-10 22:23:28 +0000
commit00b6e344ba691d3d76ced8394494ab6d26b6766c (patch)
treedb84473796db356e2a7d8427aefeae8105521655 /lib/libc
parentSimplify the handling of the explicit relocations based on ld.so only (diff)
downloadwireguard-openbsd-00b6e344ba691d3d76ced8394494ab6d26b6766c.tar.xz
wireguard-openbsd-00b6e344ba691d3d76ced8394494ab6d26b6766c.zip
Mark as 'protected' all the routines from the quad/ and softfloat/ subdirs,
as well as those in arch/arm/gen/divsi3.S. This cleans up the PLTs on the 32bit archs. luna88k testing by aoyama@ "looks good" kettenis@, testing and ok deraadt@
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/arch/arm/gen/divsi3.S5
-rw-r--r--lib/libc/quad/fixdfdi.c3
-rw-r--r--lib/libc/quad/fixsfdi.c3
-rw-r--r--lib/libc/quad/fixunsdfdi.c3
-rw-r--r--lib/libc/quad/fixunssfdi.c3
-rw-r--r--lib/libc/quad/floatdidf.c3
-rw-r--r--lib/libc/quad/floatdisf.c3
-rw-r--r--lib/libc/quad/quad.h54
-rw-r--r--lib/libc/softfloat/eqdf2.c4
-rw-r--r--lib/libc/softfloat/eqsf2.c4
-rw-r--r--lib/libc/softfloat/gedf2.c4
-rw-r--r--lib/libc/softfloat/gesf2.c4
-rw-r--r--lib/libc/softfloat/gtdf2.c4
-rw-r--r--lib/libc/softfloat/gtsf2.c4
-rw-r--r--lib/libc/softfloat/ledf2.c4
-rw-r--r--lib/libc/softfloat/lesf2.c4
-rw-r--r--lib/libc/softfloat/ltdf2.c4
-rw-r--r--lib/libc/softfloat/ltsf2.c4
-rw-r--r--lib/libc/softfloat/nedf2.c4
-rw-r--r--lib/libc/softfloat/negdf2.c4
-rw-r--r--lib/libc/softfloat/negsf2.c4
-rw-r--r--lib/libc/softfloat/nesf2.c4
-rw-r--r--lib/libc/softfloat/softfloat.h190
-rw-r--r--lib/libc/softfloat/unorddf2.c4
-rw-r--r--lib/libc/softfloat/unordsf2.c4
25 files changed, 170 insertions, 161 deletions
diff --git a/lib/libc/arch/arm/gen/divsi3.S b/lib/libc/arch/arm/gen/divsi3.S
index a95dbda7fe3..7ba7ae441a4 100644
--- a/lib/libc/arch/arm/gen/divsi3.S
+++ b/lib/libc/arch/arm/gen/divsi3.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: divsi3.S,v 1.4 2017/12/26 15:11:17 kettenis Exp $ */
+/* $OpenBSD: divsi3.S,v 1.5 2019/11/10 22:23:28 guenther Exp $ */
/* $NetBSD: divsi3.S,v 1.5 2003/04/05 23:08:51 bjh21 Exp $ */
/*
@@ -390,3 +390,6 @@ STRONG_ALIAS(__aeabi_idiv, __divsi3)
STRONG_ALIAS(__aeabi_idivmod, __divsi3)
STRONG_ALIAS(__aeabi_uidiv, __udivsi3)
STRONG_ALIAS(__aeabi_uidivmod, __udivsi3)
+
+ .protected __aeabi_idiv, __aeabi_idivmod
+ .protected __aeabi_uidiv, __aeabi_uidivmod
diff --git a/lib/libc/quad/fixdfdi.c b/lib/libc/quad/fixdfdi.c
index f389242393f..17d9667f522 100644
--- a/lib/libc/quad/fixdfdi.c
+++ b/lib/libc/quad/fixdfdi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fixdfdi.c,v 1.6 2017/12/26 15:11:17 kettenis Exp $ */
+/* $OpenBSD: fixdfdi.c,v 1.7 2019/11/10 22:23:28 guenther Exp $ */
/*-
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
@@ -55,4 +55,5 @@ __fixdfdi(double x)
#ifdef __ARM_EABI__
__strong_alias(__aeabi_d2lz, __fixdfdi);
+__asm(".protected __aeabi_d2lz");
#endif
diff --git a/lib/libc/quad/fixsfdi.c b/lib/libc/quad/fixsfdi.c
index d8b4f96d33c..54c4d0144f7 100644
--- a/lib/libc/quad/fixsfdi.c
+++ b/lib/libc/quad/fixsfdi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fixsfdi.c,v 1.7 2017/12/26 15:11:17 kettenis Exp $ */
+/* $OpenBSD: fixsfdi.c,v 1.8 2019/11/10 22:23:28 guenther Exp $ */
/*-
* Copyright (c) 1992 The Regents of the University of California.
* All rights reserved.
@@ -57,4 +57,5 @@ __fixsfdi(float x)
#ifdef __ARM_EABI__
__strong_alias(__aeabi_f2lz, __fixsfdi);
+__asm(".protected __aeabi_f2lz");
#endif
diff --git a/lib/libc/quad/fixunsdfdi.c b/lib/libc/quad/fixunsdfdi.c
index 21cea67151d..63a509bc9d3 100644
--- a/lib/libc/quad/fixunsdfdi.c
+++ b/lib/libc/quad/fixunsdfdi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fixunsdfdi.c,v 1.8 2017/12/26 15:11:17 kettenis Exp $ */
+/* $OpenBSD: fixunsdfdi.c,v 1.9 2019/11/10 22:23:28 guenther Exp $ */
/*-
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
@@ -73,4 +73,5 @@ __fixunsdfdi(double x)
#ifdef __ARM_EABI__
__strong_alias(__aeabi_d2ulz, __fixunsdfdi);
+__asm(".protected __aeabi_d2ulz");
#endif
diff --git a/lib/libc/quad/fixunssfdi.c b/lib/libc/quad/fixunssfdi.c
index bc75c6d9f40..47ce12a7484 100644
--- a/lib/libc/quad/fixunssfdi.c
+++ b/lib/libc/quad/fixunssfdi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fixunssfdi.c,v 1.6 2017/12/26 15:11:17 kettenis Exp $ */
+/* $OpenBSD: fixunssfdi.c,v 1.7 2019/11/10 22:23:28 guenther Exp $ */
/*-
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
@@ -94,4 +94,5 @@ __fixunssfdi(float f)
#ifdef __ARM_EABI__
__strong_alias(__aeabi_f2ulz, __fixunssfdi);
+__asm(".protected __aeabi_f2ulz");
#endif
diff --git a/lib/libc/quad/floatdidf.c b/lib/libc/quad/floatdidf.c
index 2b9beb0f261..a42a908a61f 100644
--- a/lib/libc/quad/floatdidf.c
+++ b/lib/libc/quad/floatdidf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: floatdidf.c,v 1.7 2017/12/26 15:11:17 kettenis Exp $ */
+/* $OpenBSD: floatdidf.c,v 1.8 2019/11/10 22:23:28 guenther Exp $ */
/*-
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
@@ -67,4 +67,5 @@ __floatdidf(quad_t x)
#ifdef __ARM_EABI__
__strong_alias(__aeabi_l2d, __floatdidf);
+__asm(".protected __aeabi_l2d");
#endif
diff --git a/lib/libc/quad/floatdisf.c b/lib/libc/quad/floatdisf.c
index 1e6726b51d4..fd2787b2cdf 100644
--- a/lib/libc/quad/floatdisf.c
+++ b/lib/libc/quad/floatdisf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: floatdisf.c,v 1.7 2017/12/26 15:11:17 kettenis Exp $ */
+/* $OpenBSD: floatdisf.c,v 1.8 2019/11/10 22:23:28 guenther Exp $ */
/*-
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
@@ -69,4 +69,5 @@ __floatdisf(quad_t x)
#ifdef __ARM_EABI__
__strong_alias(__aeabi_l2f, __floatdisf);
+__asm(".protected __aeabi_l2f");
#endif
diff --git a/lib/libc/quad/quad.h b/lib/libc/quad/quad.h
index e804233995d..f6e38b60258 100644
--- a/lib/libc/quad/quad.h
+++ b/lib/libc/quad/quad.h
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $OpenBSD: quad.h,v 1.8 2014/06/10 04:17:37 deraadt Exp $
+ * $OpenBSD: quad.h,v 1.9 2019/11/10 22:23:28 guenther Exp $
*/
/*
@@ -93,29 +93,29 @@ union uu {
typedef unsigned int qshift_t;
-quad_t __adddi3(quad_t, quad_t);
-quad_t __anddi3(quad_t, quad_t);
-quad_t __ashldi3(quad_t, qshift_t);
-quad_t __ashrdi3(quad_t, qshift_t);
-int __cmpdi2(quad_t, quad_t);
-quad_t __divdi3(quad_t, quad_t);
-quad_t __fixdfdi(double);
-quad_t __fixsfdi(float);
-u_quad_t __fixunsdfdi(double);
-u_quad_t __fixunssfdi(float);
-double __floatdidf(quad_t);
-float __floatdisf(quad_t);
-double __floatunsdidf(u_quad_t);
-quad_t __iordi3(quad_t, quad_t);
-quad_t __lshldi3(quad_t, qshift_t);
-quad_t __lshrdi3(quad_t, qshift_t);
-quad_t __moddi3(quad_t, quad_t);
-quad_t __muldi3(quad_t, quad_t);
-quad_t __negdi2(quad_t);
-quad_t __one_cmpldi2(quad_t);
-u_quad_t __qdivrem(u_quad_t, u_quad_t, u_quad_t *);
-quad_t __subdi3(quad_t, quad_t);
-int __ucmpdi2(u_quad_t, u_quad_t);
-u_quad_t __udivdi3(u_quad_t, u_quad_t );
-u_quad_t __umoddi3(u_quad_t, u_quad_t );
-quad_t __xordi3(quad_t, quad_t);
+quad_t __adddi3(quad_t, quad_t) __dso_protected;
+quad_t __anddi3(quad_t, quad_t) __dso_protected;
+quad_t __ashldi3(quad_t, qshift_t) __dso_protected;
+quad_t __ashrdi3(quad_t, qshift_t) __dso_protected;
+int __cmpdi2(quad_t, quad_t) __dso_protected;
+quad_t __divdi3(quad_t, quad_t) __dso_protected;
+quad_t __fixdfdi(double) __dso_protected;
+quad_t __fixsfdi(float) __dso_protected;
+u_quad_t __fixunsdfdi(double) __dso_protected;
+u_quad_t __fixunssfdi(float) __dso_protected;
+double __floatdidf(quad_t) __dso_protected;
+float __floatdisf(quad_t) __dso_protected;
+double __floatunsdidf(u_quad_t) __dso_protected;
+quad_t __iordi3(quad_t, quad_t) __dso_protected;
+quad_t __lshldi3(quad_t, qshift_t) __dso_protected;
+quad_t __lshrdi3(quad_t, qshift_t) __dso_protected;
+quad_t __moddi3(quad_t, quad_t) __dso_protected;
+quad_t __muldi3(quad_t, quad_t) __dso_protected;
+quad_t __negdi2(quad_t) __dso_protected;
+quad_t __one_cmpldi2(quad_t) __dso_protected;
+u_quad_t __qdivrem(u_quad_t, u_quad_t, u_quad_t *) __dso_protected;
+quad_t __subdi3(quad_t, quad_t) __dso_protected;
+int __ucmpdi2(u_quad_t, u_quad_t) __dso_protected;
+u_quad_t __udivdi3(u_quad_t, u_quad_t ) __dso_protected;
+u_quad_t __umoddi3(u_quad_t, u_quad_t ) __dso_protected;
+quad_t __xordi3(quad_t, quad_t) __dso_protected;
diff --git a/lib/libc/softfloat/eqdf2.c b/lib/libc/softfloat/eqdf2.c
index 34ae5c60845..5f148099823 100644
--- a/lib/libc/softfloat/eqdf2.c
+++ b/lib/libc/softfloat/eqdf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: eqdf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: eqdf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: eqdf2.c,v 1.1 2000/06/06 08:15:02 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __eqdf2(float64, float64);
+flag __eqdf2(float64, float64) __dso_protected;
flag
__eqdf2(float64 a, float64 b)
diff --git a/lib/libc/softfloat/eqsf2.c b/lib/libc/softfloat/eqsf2.c
index 3857929c7ca..882262dd640 100644
--- a/lib/libc/softfloat/eqsf2.c
+++ b/lib/libc/softfloat/eqsf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: eqsf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: eqsf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: eqsf2.c,v 1.1 2000/06/06 08:15:03 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __eqsf2(float32, float32);
+flag __eqsf2(float32, float32) __dso_protected;
flag
__eqsf2(float32 a, float32 b)
diff --git a/lib/libc/softfloat/gedf2.c b/lib/libc/softfloat/gedf2.c
index f6961b06622..0922936d34b 100644
--- a/lib/libc/softfloat/gedf2.c
+++ b/lib/libc/softfloat/gedf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gedf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: gedf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: gedf2.c,v 1.1 2000/06/06 08:15:05 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __gedf2(float64, float64);
+flag __gedf2(float64, float64) __dso_protected;
flag
__gedf2(float64 a, float64 b)
diff --git a/lib/libc/softfloat/gesf2.c b/lib/libc/softfloat/gesf2.c
index 3d1c885e3bc..6480e3e7938 100644
--- a/lib/libc/softfloat/gesf2.c
+++ b/lib/libc/softfloat/gesf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gesf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: gesf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: gesf2.c,v 1.1 2000/06/06 08:15:05 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __gesf2(float32, float32);
+flag __gesf2(float32, float32) __dso_protected;
flag
__gesf2(float32 a, float32 b)
diff --git a/lib/libc/softfloat/gtdf2.c b/lib/libc/softfloat/gtdf2.c
index ad54c1ce898..632b246806d 100644
--- a/lib/libc/softfloat/gtdf2.c
+++ b/lib/libc/softfloat/gtdf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gtdf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: gtdf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: gtdf2.c,v 1.1 2000/06/06 08:15:05 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __gtdf2(float64, float64);
+flag __gtdf2(float64, float64) __dso_protected;
flag
__gtdf2(float64 a, float64 b)
diff --git a/lib/libc/softfloat/gtsf2.c b/lib/libc/softfloat/gtsf2.c
index 47e6bbdbf88..92fd89ce054 100644
--- a/lib/libc/softfloat/gtsf2.c
+++ b/lib/libc/softfloat/gtsf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gtsf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: gtsf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: gtsf2.c,v 1.1 2000/06/06 08:15:06 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __gtsf2(float32, float32);
+flag __gtsf2(float32, float32) __dso_protected;
flag
__gtsf2(float32 a, float32 b)
diff --git a/lib/libc/softfloat/ledf2.c b/lib/libc/softfloat/ledf2.c
index 337f9952350..cb3be06da9e 100644
--- a/lib/libc/softfloat/ledf2.c
+++ b/lib/libc/softfloat/ledf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ledf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: ledf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: ledf2.c,v 1.1 2000/06/06 08:15:06 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __ledf2(float64, float64);
+flag __ledf2(float64, float64) __dso_protected;
flag
__ledf2(float64 a, float64 b)
diff --git a/lib/libc/softfloat/lesf2.c b/lib/libc/softfloat/lesf2.c
index bd8b501082b..27104dad106 100644
--- a/lib/libc/softfloat/lesf2.c
+++ b/lib/libc/softfloat/lesf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lesf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: lesf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: lesf2.c,v 1.1 2000/06/06 08:15:06 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __lesf2(float32, float32);
+flag __lesf2(float32, float32) __dso_protected;
flag
__lesf2(float32 a, float32 b)
diff --git a/lib/libc/softfloat/ltdf2.c b/lib/libc/softfloat/ltdf2.c
index 526e1e8bb66..8f7c86d45e4 100644
--- a/lib/libc/softfloat/ltdf2.c
+++ b/lib/libc/softfloat/ltdf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ltdf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: ltdf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: ltdf2.c,v 1.1 2000/06/06 08:15:06 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __ltdf2(float64, float64);
+flag __ltdf2(float64, float64) __dso_protected;
flag
__ltdf2(float64 a, float64 b)
diff --git a/lib/libc/softfloat/ltsf2.c b/lib/libc/softfloat/ltsf2.c
index 223d3f2bbff..6aa032f4f79 100644
--- a/lib/libc/softfloat/ltsf2.c
+++ b/lib/libc/softfloat/ltsf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ltsf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: ltsf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: ltsf2.c,v 1.1 2000/06/06 08:15:06 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __ltsf2(float32, float32);
+flag __ltsf2(float32, float32) __dso_protected;
flag
__ltsf2(float32 a, float32 b)
diff --git a/lib/libc/softfloat/nedf2.c b/lib/libc/softfloat/nedf2.c
index 55725bbbbcd..a79669013be 100644
--- a/lib/libc/softfloat/nedf2.c
+++ b/lib/libc/softfloat/nedf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nedf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: nedf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: nedf2.c,v 1.1 2000/06/06 08:15:07 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __nedf2(float64, float64);
+flag __nedf2(float64, float64) __dso_protected;
flag
__nedf2(float64 a, float64 b)
diff --git a/lib/libc/softfloat/negdf2.c b/lib/libc/softfloat/negdf2.c
index ad052758419..c619675c62f 100644
--- a/lib/libc/softfloat/negdf2.c
+++ b/lib/libc/softfloat/negdf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: negdf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: negdf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: negdf2.c,v 1.1 2000/06/06 08:15:07 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-float64 __negdf2(float64);
+float64 __negdf2(float64) __dso_protected;
float64
__negdf2(float64 a)
diff --git a/lib/libc/softfloat/negsf2.c b/lib/libc/softfloat/negsf2.c
index 7d59da6f128..faac82fd793 100644
--- a/lib/libc/softfloat/negsf2.c
+++ b/lib/libc/softfloat/negsf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: negsf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: negsf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: negsf2.c,v 1.1 2000/06/06 08:15:07 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-float32 __negsf2(float32);
+float32 __negsf2(float32) __dso_protected;
float32
__negsf2(float32 a)
diff --git a/lib/libc/softfloat/nesf2.c b/lib/libc/softfloat/nesf2.c
index e86f58c02bd..82465ba752f 100644
--- a/lib/libc/softfloat/nesf2.c
+++ b/lib/libc/softfloat/nesf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nesf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: nesf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: nesf2.c,v 1.1 2000/06/06 08:15:07 bjh21 Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __nesf2(float32, float32);
+flag __nesf2(float32, float32) __dso_protected;
flag
__nesf2(float32 a, float32 b)
diff --git a/lib/libc/softfloat/softfloat.h b/lib/libc/softfloat/softfloat.h
index 19b6908751a..815ae8d4a91 100644
--- a/lib/libc/softfloat/softfloat.h
+++ b/lib/libc/softfloat/softfloat.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: softfloat.h,v 1.2 2011/07/05 05:13:21 drahn Exp $ */
+/* $OpenBSD: softfloat.h,v 1.3 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: softfloat.h,v 1.6 2002/05/12 13:12:46 bjh21 Exp $ */
/* This is a derivative work. */
@@ -121,22 +121,22 @@ void float_raise( fp_except );
Software IEC/IEEE integer-to-floating-point conversion routines.
-------------------------------------------------------------------------------
*/
-float32 int32_to_float32( int );
-float64 int32_to_float64( int );
+float32 int32_to_float32( int ) __dso_protected;
+float64 int32_to_float64( int ) __dso_protected;
#ifdef FLOATX80
-floatx80 int32_to_floatx80( int );
+floatx80 int32_to_floatx80( int ) __dso_protected;
#endif
#ifdef FLOAT128
-float128 int32_to_float128( int );
+float128 int32_to_float128( int ) __dso_protected;
#endif
#ifndef SOFTFLOAT_FOR_GCC /* __floatdi?f is in libgcc2.c */
-float32 int64_to_float32( long long );
-float64 int64_to_float64( long long );
+float32 int64_to_float32( long long ) __dso_protected;
+float64 int64_to_float64( long long ) __dso_protected;
#ifdef FLOATX80
-floatx80 int64_to_floatx80( long long );
+floatx80 int64_to_floatx80( long long ) __dso_protected;
#endif
#ifdef FLOAT128
-float128 int64_to_float128( long long );
+float128 int64_to_float128( long long ) __dso_protected;
#endif
#endif
@@ -145,21 +145,21 @@ float128 int64_to_float128( long long );
Software IEC/IEEE single-precision conversion routines.
-------------------------------------------------------------------------------
*/
-int float32_to_int32( float32 );
-int float32_to_int32_round_to_zero( float32 );
+int float32_to_int32( float32 ) __dso_protected;
+int float32_to_int32_round_to_zero( float32 ) __dso_protected;
#if defined(SOFTFLOAT_FOR_GCC) && defined(SOFTFLOAT_NEED_FIXUNS)
-unsigned int float32_to_uint32_round_to_zero( float32 );
+unsigned int float32_to_uint32_round_to_zero( float32 ) __dso_protected;
#endif
#ifndef SOFTFLOAT_FOR_GCC /* __fix?fdi provided by libgcc2.c */
-long long float32_to_int64( float32 );
-long long float32_to_int64_round_to_zero( float32 );
+long long float32_to_int64( float32 ) __dso_protected;
+long long float32_to_int64_round_to_zero( float32 ) __dso_protected;
#endif
-float64 float32_to_float64( float32 );
+float64 float32_to_float64( float32 ) __dso_protected;
#ifdef FLOATX80
-floatx80 float32_to_floatx80( float32 );
+floatx80 float32_to_floatx80( float32 ) __dso_protected;
#endif
#ifdef FLOAT128
-float128 float32_to_float128( float32 );
+float128 float32_to_float128( float32 ) __dso_protected;
#endif
/*
@@ -167,21 +167,21 @@ float128 float32_to_float128( float32 );
Software IEC/IEEE single-precision operations.
-------------------------------------------------------------------------------
*/
-float32 float32_round_to_int( float32 );
-float32 float32_add( float32, float32 );
-float32 float32_sub( float32, float32 );
-float32 float32_mul( float32, float32 );
-float32 float32_div( float32, float32 );
-float32 float32_rem( float32, float32 );
-float32 float32_sqrt( float32 );
-int float32_eq( float32, float32 );
-int float32_le( float32, float32 );
-int float32_lt( float32, float32 );
-int float32_eq_signaling( float32, float32 );
-int float32_le_quiet( float32, float32 );
-int float32_lt_quiet( float32, float32 );
+float32 float32_round_to_int( float32 ) __dso_protected;
+float32 float32_add( float32, float32 ) __dso_protected;
+float32 float32_sub( float32, float32 ) __dso_protected;
+float32 float32_mul( float32, float32 ) __dso_protected;
+float32 float32_div( float32, float32 ) __dso_protected;
+float32 float32_rem( float32, float32 ) __dso_protected;
+float32 float32_sqrt( float32 ) __dso_protected;
+int float32_eq( float32, float32 ) __dso_protected;
+int float32_le( float32, float32 ) __dso_protected;
+int float32_lt( float32, float32 ) __dso_protected;
+int float32_eq_signaling( float32, float32 ) __dso_protected;
+int float32_le_quiet( float32, float32 ) __dso_protected;
+int float32_lt_quiet( float32, float32 ) __dso_protected;
#ifndef SOFTFLOAT_FOR_GCC
-int float32_is_signaling_nan( float32 );
+int float32_is_signaling_nan( float32 ) __dso_protected;
#endif
/*
@@ -189,21 +189,21 @@ int float32_is_signaling_nan( float32 );
Software IEC/IEEE double-precision conversion routines.
-------------------------------------------------------------------------------
*/
-int float64_to_int32( float64 );
-int float64_to_int32_round_to_zero( float64 );
+int float64_to_int32( float64 ) __dso_protected;
+int float64_to_int32_round_to_zero( float64 ) __dso_protected;
#if defined(SOFTFLOAT_FOR_GCC) && defined(SOFTFLOAT_NEED_FIXUNS)
-unsigned int float64_to_uint32_round_to_zero( float64 );
+unsigned int float64_to_uint32_round_to_zero( float64 ) __dso_protected;
#endif
#ifndef SOFTFLOAT_FOR_GCC /* __fix?fdi provided by libgcc2.c */
-long long float64_to_int64( float64 );
-long long float64_to_int64_round_to_zero( float64 );
+long long float64_to_int64( float64 ) __dso_protected;
+long long float64_to_int64_round_to_zero( float64 ) __dso_protected;
#endif
-float32 float64_to_float32( float64 );
+float32 float64_to_float32( float64 ) __dso_protected;
#ifdef FLOATX80
-floatx80 float64_to_floatx80( float64 );
+floatx80 float64_to_floatx80( float64 ) __dso_protected;
#endif
#ifdef FLOAT128
-float128 float64_to_float128( float64 );
+float128 float64_to_float128( float64 ) __dso_protected;
#endif
/*
@@ -211,21 +211,21 @@ float128 float64_to_float128( float64 );
Software IEC/IEEE double-precision operations.
-------------------------------------------------------------------------------
*/
-float64 float64_round_to_int( float64 );
-float64 float64_add( float64, float64 );
-float64 float64_sub( float64, float64 );
-float64 float64_mul( float64, float64 );
-float64 float64_div( float64, float64 );
-float64 float64_rem( float64, float64 );
-float64 float64_sqrt( float64 );
-int float64_eq( float64, float64 );
-int float64_le( float64, float64 );
-int float64_lt( float64, float64 );
-int float64_eq_signaling( float64, float64 );
-int float64_le_quiet( float64, float64 );
-int float64_lt_quiet( float64, float64 );
+float64 float64_round_to_int( float64 ) __dso_protected;
+float64 float64_add( float64, float64 ) __dso_protected;
+float64 float64_sub( float64, float64 ) __dso_protected;
+float64 float64_mul( float64, float64 ) __dso_protected;
+float64 float64_div( float64, float64 ) __dso_protected;
+float64 float64_rem( float64, float64 ) __dso_protected;
+float64 float64_sqrt( float64 ) __dso_protected;
+int float64_eq( float64, float64 ) __dso_protected;
+int float64_le( float64, float64 ) __dso_protected;
+int float64_lt( float64, float64 ) __dso_protected;
+int float64_eq_signaling( float64, float64 ) __dso_protected;
+int float64_le_quiet( float64, float64 ) __dso_protected;
+int float64_lt_quiet( float64, float64 ) __dso_protected;
#ifndef SOFTFLOAT_FOR_GCC
-int float64_is_signaling_nan( float64 );
+int float64_is_signaling_nan( float64 ) __dso_protected;
#endif
#ifdef FLOATX80
@@ -235,14 +235,14 @@ int float64_is_signaling_nan( float64 );
Software IEC/IEEE extended double-precision conversion routines.
-------------------------------------------------------------------------------
*/
-int floatx80_to_int32( floatx80 );
-int floatx80_to_int32_round_to_zero( floatx80 );
-long long floatx80_to_int64( floatx80 );
-long long floatx80_to_int64_round_to_zero( floatx80 );
-float32 floatx80_to_float32( floatx80 );
-float64 floatx80_to_float64( floatx80 );
+int floatx80_to_int32( floatx80 ) __dso_protected;
+int floatx80_to_int32_round_to_zero( floatx80 ) __dso_protected;
+long long floatx80_to_int64( floatx80 ) __dso_protected;
+long long floatx80_to_int64_round_to_zero( floatx80 ) __dso_protected;
+float32 floatx80_to_float32( floatx80 ) __dso_protected;
+float64 floatx80_to_float64( floatx80 ) __dso_protected;
#ifdef FLOAT128
-float128 floatx80_to_float128( floatx80 );
+float128 floatx80_to_float128( floatx80 ) __dso_protected;
#endif
/*
@@ -258,20 +258,20 @@ extern int floatx80_rounding_precision;
Software IEC/IEEE extended double-precision operations.
-------------------------------------------------------------------------------
*/
-floatx80 floatx80_round_to_int( floatx80 );
-floatx80 floatx80_add( floatx80, floatx80 );
-floatx80 floatx80_sub( floatx80, floatx80 );
-floatx80 floatx80_mul( floatx80, floatx80 );
-floatx80 floatx80_div( floatx80, floatx80 );
-floatx80 floatx80_rem( floatx80, floatx80 );
-floatx80 floatx80_sqrt( floatx80 );
-int floatx80_eq( floatx80, floatx80 );
-int floatx80_le( floatx80, floatx80 );
-int floatx80_lt( floatx80, floatx80 );
-int floatx80_eq_signaling( floatx80, floatx80 );
-int floatx80_le_quiet( floatx80, floatx80 );
-int floatx80_lt_quiet( floatx80, floatx80 );
-int floatx80_is_signaling_nan( floatx80 );
+floatx80 floatx80_round_to_int( floatx80 ) __dso_protected;
+floatx80 floatx80_add( floatx80, floatx80 ) __dso_protected;
+floatx80 floatx80_sub( floatx80, floatx80 ) __dso_protected;
+floatx80 floatx80_mul( floatx80, floatx80 ) __dso_protected;
+floatx80 floatx80_div( floatx80, floatx80 ) __dso_protected;
+floatx80 floatx80_rem( floatx80, floatx80 ) __dso_protected;
+floatx80 floatx80_sqrt( floatx80 ) __dso_protected;
+int floatx80_eq( floatx80, floatx80 ) __dso_protected;
+int floatx80_le( floatx80, floatx80 ) __dso_protected;
+int floatx80_lt( floatx80, floatx80 ) __dso_protected;
+int floatx80_eq_signaling( floatx80, floatx80 ) __dso_protected;
+int floatx80_le_quiet( floatx80, floatx80 ) __dso_protected;
+int floatx80_lt_quiet( floatx80, floatx80 ) __dso_protected;
+int floatx80_is_signaling_nan( floatx80 ) __dso_protected;
#endif
@@ -282,14 +282,14 @@ int floatx80_is_signaling_nan( floatx80 );
Software IEC/IEEE quadruple-precision conversion routines.
-------------------------------------------------------------------------------
*/
-int float128_to_int32( float128 );
-int float128_to_int32_round_to_zero( float128 );
-long long float128_to_int64( float128 );
-long long float128_to_int64_round_to_zero( float128 );
-float32 float128_to_float32( float128 );
-float64 float128_to_float64( float128 );
+int float128_to_int32( float128 ) __dso_protected;
+int float128_to_int32_round_to_zero( float128 ) __dso_protected;
+long long float128_to_int64( float128 ) __dso_protected;
+long long float128_to_int64_round_to_zero( float128 ) __dso_protected;
+float32 float128_to_float32( float128 ) __dso_protected;
+float64 float128_to_float64( float128 ) __dso_protected;
#ifdef FLOATX80
-floatx80 float128_to_floatx80( float128 );
+floatx80 float128_to_floatx80( float128 ) __dso_protected;
#endif
/*
@@ -297,20 +297,20 @@ floatx80 float128_to_floatx80( float128 );
Software IEC/IEEE quadruple-precision operations.
-------------------------------------------------------------------------------
*/
-float128 float128_round_to_int( float128 );
-float128 float128_add( float128, float128 );
-float128 float128_sub( float128, float128 );
-float128 float128_mul( float128, float128 );
-float128 float128_div( float128, float128 );
-float128 float128_rem( float128, float128 );
-float128 float128_sqrt( float128 );
-int float128_eq( float128, float128 );
-int float128_le( float128, float128 );
-int float128_lt( float128, float128 );
-int float128_eq_signaling( float128, float128 );
-int float128_le_quiet( float128, float128 );
-int float128_lt_quiet( float128, float128 );
-int float128_is_signaling_nan( float128 );
+float128 float128_round_to_int( float128 ) __dso_protected;
+float128 float128_add( float128, float128 ) __dso_protected;
+float128 float128_sub( float128, float128 ) __dso_protected;
+float128 float128_mul( float128, float128 ) __dso_protected;
+float128 float128_div( float128, float128 ) __dso_protected;
+float128 float128_rem( float128, float128 ) __dso_protected;
+float128 float128_sqrt( float128 ) __dso_protected;
+int float128_eq( float128, float128 ) __dso_protected;
+int float128_le( float128, float128 ) __dso_protected;
+int float128_lt( float128, float128 ) __dso_protected;
+int float128_eq_signaling( float128, float128 ) __dso_protected;
+int float128_le_quiet( float128, float128 ) __dso_protected;
+int float128_lt_quiet( float128, float128 ) __dso_protected;
+int float128_is_signaling_nan( float128 ) __dso_protected;
#endif
diff --git a/lib/libc/softfloat/unorddf2.c b/lib/libc/softfloat/unorddf2.c
index 4619df186d1..beb74de1d11 100644
--- a/lib/libc/softfloat/unorddf2.c
+++ b/lib/libc/softfloat/unorddf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: unorddf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: unorddf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: unorddf2.c,v 1.1 2003/05/06 08:58:19 rearnsha Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __unorddf2(float64, float64);
+flag __unorddf2(float64, float64) __dso_protected;
flag
__unorddf2(float64 a, float64 b)
diff --git a/lib/libc/softfloat/unordsf2.c b/lib/libc/softfloat/unordsf2.c
index c58983be2b2..4ed282498f1 100644
--- a/lib/libc/softfloat/unordsf2.c
+++ b/lib/libc/softfloat/unordsf2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: unordsf2.c,v 1.3 2015/09/13 14:21:46 miod Exp $ */
+/* $OpenBSD: unordsf2.c,v 1.4 2019/11/10 22:23:29 guenther Exp $ */
/* $NetBSD: unordsf2.c,v 1.1 2003/05/06 08:58:20 rearnsha Exp $ */
/*
@@ -9,7 +9,7 @@
#include "milieu.h"
#include <softfloat.h>
-flag __unordsf2(float32, float32);
+flag __unordsf2(float32, float32) __dso_protected;
flag
__unordsf2(float32 a, float32 b)