From d6c35f618c4f3ca20a43a5a28e08cde3540e6b7c Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Tue, 10 Jan 2017 04:33:15 +0100 Subject: [PATCH] Do not provide funopen() on musl Fixes: https://bugs.debian.org/818246 --- configure.ac | 6 +++++- src/funopen.c | 10 ++++++++-- src/libbsd.map | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 5cbc2fa..e4d190d 100644 --- a/configure.ac +++ b/configure.ac @@ -51,7 +51,11 @@ AS_CASE([$host_os], AC_SEARCH_LIBS([clock_gettime], [rt], [CLOCK_GETTIME_LIBS="-lrt"]) AC_SUBST([CLOCK_GETTIME_LIBS]) LIBS="$saved_LIBS" - ] + ], + [*-musl], [ + # Upstream refuses to define this, we will do it ourselves then. + AC_DEFINE([__MUSL__], [1], [Define to 1 if we are building for musl]) + ], ) # Checks for header files. diff --git a/src/funopen.c b/src/funopen.c index 7d6ae31..1e05c7e 100644 --- a/src/funopen.c +++ b/src/funopen.c @@ -1,5 +1,5 @@ /* - * Copyright © 2011, 2013 Guillem Jover + * Copyright © 2011, 2013, 2017 Guillem Jover * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -137,6 +137,12 @@ funopen(const void *cookie, return fopencookie(cookiewrap, mode, funcswrap); } +#elif defined(__MUSL__) +/* + * This is unimplementable on musl based systems, and upstream has stated + * they will not add the needed support to implement it. Just ignore this + * interface there, as it has never been provided anyway. + */ #else -#error "Function funopen() needs to be ported." +#error "Function funopen() needs to be ported or disabled." #endif diff --git a/src/libbsd.map b/src/libbsd.map index 2b9a3db..304c593 100644 --- a/src/libbsd.map +++ b/src/libbsd.map @@ -114,6 +114,9 @@ LIBBSD_0.6 { LIBBSD_0.7 { getbsize; + /* This symbol might not be present on some specific systems, such + * as musl based ones. It might need to be removed on SOVERSION bump, + * as it cannot be portabily implemented everywhere. */ funopen; reallocarray; -- 2.47.2