The patch below makes pulseaudio build on sparc64. The problem is that the determination of libintl_dep works as intended with base-clang but fails with ports-gcc (*). Thus, pacat and a couple other programs are linked without -lintl on sparc64, which won't work.
http://build-failures.rhaalovely.net/sparc64/2021-09-18/audio/pulseaudio.log I did not bump revision, since this should not change anything on architectures where pulseaudio 15.0 already builds. (*) Meson uses the test program below which compiles with egcc -L/usr/local/lib -I/usr/local/include testfile.c -o test.out -O2 -pipe -O0 -std=gnu11 but doesn't compile with clang. int main(void) { /* With some toolchains (MSYS2/mingw for example) the compiler * provides various builtins which are not really implemented and * fall back to the stdlib where they aren't provided and fail at * build/link time. In case the user provides a header, including * the header didn't lead to the function being defined, and the * function we are checking isn't a builtin itself we assume the * builtin is not functional and we just error out. */ #if !1 && !defined(dgettext) && !0 #error "No definition for __builtin_dgettext found in the prefix" #endif #ifdef __has_builtin #if !__has_builtin(__builtin_dgettext) #error "__builtin_dgettext not found" #endif #elif ! defined(dgettext) __builtin_dgettext; #endif return 0; } Index: patches/patch-meson_build =================================================================== RCS file: /cvs/ports/audio/pulseaudio/patches/patch-meson_build,v retrieving revision 1.1 diff -u -p -r1.1 patch-meson_build --- patches/patch-meson_build 15 Aug 2021 16:36:56 -0000 1.1 +++ patches/patch-meson_build 24 Sep 2021 08:14:33 -0000 @@ -18,6 +18,15 @@ Index: meson.build cdata.set_quoted('PA_DLSEARCHPATH', modlibexecdir) cdata.set_quoted('PA_SYSTEM_USER', get_option('system_user')) cdata.set_quoted('PA_SYSTEM_GROUP', get_option('system_group')) +@@ -348,7 +348,7 @@ if cc.has_header_symbol('sys/syscall.h', 'SYS_memfd_cr + endif + + if cc.has_function('dgettext') +- if host_machine.system() != 'windows' ++ if host_machine.system() != 'windows' and host_machine.system() != 'openbsd' + libintl_dep = [] + else + libintl_dep = cc.find_library('intl') @@ -432,6 +432,8 @@ foreach f : [ cdata.set(define, 1) endif
