about summary refs log tree commit diff
path: root/arch
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2019-07-30 22:11:39 -0400
committerRich Felker <dalias@aerifal.cx>2019-07-31 20:20:57 -0400
commit51fd67fcbfa598e2fe1885b517451b84c0bfe3b7 (patch)
treef1c8e0b65cc7d98ee0c0100276c74f5e78f6dc33 /arch
parent59324c8b0950ee94db846a50554183c845ede160 (diff)
downloadmusl-51fd67fcbfa598e2fe1885b517451b84c0bfe3b7.tar.gz
musl-51fd67fcbfa598e2fe1885b517451b84c0bfe3b7.tar.xz
musl-51fd67fcbfa598e2fe1885b517451b84c0bfe3b7.zip
get/setsockopt: add fallback for new time64 SO_RCVTIMEO/SO_SNDTIMEO
without this, the SO_RCVTIMEO and SO_SNDTIMEO socket options would
stop working on pre-5.1 kernels after time_t is switched to 64-bit and
their values are changed to the new time64 versions.

new code is written such that it's statically unreachable on 64-bit
archs, and on existing 32-bit archs until the macro values are changed
to activate 64-bit time_t.
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/syscall_arch.h3
-rw-r--r--arch/mips64/syscall_arch.h3
-rw-r--r--arch/mipsn32/syscall_arch.h3
-rw-r--r--arch/powerpc/syscall_arch.h3
-rw-r--r--arch/powerpc64/syscall_arch.h3
5 files changed, 15 insertions, 0 deletions
diff --git a/arch/mips/syscall_arch.h b/arch/mips/syscall_arch.h
index e4854f50..2ef8a952 100644
--- a/arch/mips/syscall_arch.h
+++ b/arch/mips/syscall_arch.h
@@ -141,3 +141,6 @@ static inline long __syscall7(long n, long a, long b, long c, long d, long e, lo
 #define VDSO_USEFUL
 #define VDSO_CGT_SYM "__vdso_clock_gettime"
 #define VDSO_CGT_VER "LINUX_2.6"
+
+#define SO_SNDTIMEO_OLD 0x1005
+#define SO_RCVTIMEO_OLD 0x1006
diff --git a/arch/mips64/syscall_arch.h b/arch/mips64/syscall_arch.h
index 852ac263..013908dd 100644
--- a/arch/mips64/syscall_arch.h
+++ b/arch/mips64/syscall_arch.h
@@ -117,3 +117,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
 #define VDSO_USEFUL
 #define VDSO_CGT_SYM "__vdso_clock_gettime"
 #define VDSO_CGT_VER "LINUX_2.6"
+
+#define SO_SNDTIMEO_OLD 0x1005
+#define SO_RCVTIMEO_OLD 0x1006
diff --git a/arch/mipsn32/syscall_arch.h b/arch/mipsn32/syscall_arch.h
index 78b217fa..5a6da0ed 100644
--- a/arch/mipsn32/syscall_arch.h
+++ b/arch/mipsn32/syscall_arch.h
@@ -112,3 +112,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
 #define VDSO_USEFUL
 #define VDSO_CGT_SYM "__vdso_clock_gettime"
 #define VDSO_CGT_VER "LINUX_2.6"
+
+#define SO_SNDTIMEO_OLD 0x1005
+#define SO_RCVTIMEO_OLD 0x1006
diff --git a/arch/powerpc/syscall_arch.h b/arch/powerpc/syscall_arch.h
index e26a3c34..ede97c1c 100644
--- a/arch/powerpc/syscall_arch.h
+++ b/arch/powerpc/syscall_arch.h
@@ -89,3 +89,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
 }
 
 #define SYSCALL_FADVISE_6_ARG
+
+#define SO_RCVTIMEO_OLD  18
+#define SO_SNDTIMEO_OLD  19
diff --git a/arch/powerpc64/syscall_arch.h b/arch/powerpc64/syscall_arch.h
index 1e730625..76b4e335 100644
--- a/arch/powerpc64/syscall_arch.h
+++ b/arch/powerpc64/syscall_arch.h
@@ -85,3 +85,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo
 	:: "memory", "cr0", "r9", "r10", "r11", "r12");
 	return r3;
 }
+
+#define SO_RCVTIMEO_OLD  18
+#define SO_SNDTIMEO_OLD  19