From: Thomas Petazzoni Date: Sun, 2 Jul 2017 16:53:30 +0000 (+0200) Subject: openal: don't download patches from Github X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=50368ac2ab63dff420a99ef2182803466a2b741f;p=buildroot.git openal: don't download patches from Github Patches downloaded from Github are not stable, so bring them in the tree. Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- diff --git a/package/openal/0001-Build-NEON-code-with-mfpu-neon.patch b/package/openal/0001-Build-NEON-code-with-mfpu-neon.patch new file mode 100644 index 0000000000..090fdfc41c --- /dev/null +++ b/package/openal/0001-Build-NEON-code-with-mfpu-neon.patch @@ -0,0 +1,29 @@ +From 27916ce3db023454a0295ee63ea196fbc246674c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 6 Sep 2016 22:19:14 +0200 +Subject: [PATCH] Build NEON code with -mfpu=neon + +The ARM-specific NEON code needs to be built with -mfpu=neon to avoid +build failures when a difference FPU is used by default by the +compiler. + +Fixes issue #54. + +[Upstream commit: https://github.com/kcat/openal-soft/commit/27916ce3db023454a0295ee63ea196fbc246674c] +Signed-off-by: Thomas Petazzoni +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d8f15153..d92bbb7d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -767,6 +767,7 @@ IF(HAVE_ARM_NEON_H) + SET(HAVE_NEON 1) + SET(ALC_OBJS ${ALC_OBJS} Alc/mixer_neon.c) + SET(CPU_EXTS "${CPU_EXTS}, Neon") ++ SET_SOURCE_FILES_PROPERTIES(Alc/mixer_neon.c PROPERTIES COMPILE_FLAGS -mfpu=neon) + ENDIF() + ENDIF() + IF(ALSOFT_REQUIRE_NEON AND NOT HAVE_NEON) diff --git a/package/openal/0001-Fix-detection-of-C11-atomics.patch b/package/openal/0001-Fix-detection-of-C11-atomics.patch deleted file mode 100644 index c6b9840908..0000000000 --- a/package/openal/0001-Fix-detection-of-C11-atomics.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 10fee6d71a1f7d6e6319005196562b4a30b4e8ff Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -Date: Tue, 2 Feb 2016 14:58:52 +0100 -Subject: [PATCH] Fix detection of C11 atomics - -Currently, the CMakeLists.txt logic to detect the availability of C11 -atomics is based on building a small program that uses the -atomic_load(). - -However, atomic_load() does not need to use any function from -libatomic (part of the gcc runtime). So even if libatomic is missing, -this test concludes that C11 atomic support is available. For example -on SPARC, the example program builds fine without linking to -libatomic, but calling other functions of the atomic_*() APIs fail -without linking to libatomic. - -So, this patch adjusts the CMakeLists.txt test to use a function that -is known to require the libatomic run-time library (on architectures -where it is needed). This way, openal will only use the __atomic_*() -built-ins when they are actually functional. - -Signed-off-by: Thomas Petazzoni ---- - CMakeLists.txt | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5784d35..a53f996 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -209,14 +209,17 @@ CHECK_C_SOURCE_COMPILES( - HAVE_C11_ALIGNAS) - - # Check if we have C11 _Atomic -+set(OLD_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) -+set(CMAKE_REQUIRED_LIBRARIES ${EXTRA_LIBS}) - CHECK_C_SOURCE_COMPILES( - "#include -- const int _Atomic foo = ATOMIC_VAR_INIT(~0); -+ int _Atomic foo = ATOMIC_VAR_INIT(~0); - int main() - { -- return atomic_load(&foo); -+ return atomic_fetch_add(&foo, 2); - }" - HAVE_C11_ATOMIC) -+set(CMAKE_REQUIRED_LIBRARIES ${OLD_REQUIRED_LIBRARIES}) - - # Add definitions, compiler switches, etc. - INCLUDE_DIRECTORIES("${OpenAL_SOURCE_DIR}/include" "${OpenAL_BINARY_DIR}") --- -2.6.4 - diff --git a/package/openal/0002-Check-for-run-time-NEON-support-by-reading.patch b/package/openal/0002-Check-for-run-time-NEON-support-by-reading.patch new file mode 100644 index 0000000000..0f61a27745 --- /dev/null +++ b/package/openal/0002-Check-for-run-time-NEON-support-by-reading.patch @@ -0,0 +1,67 @@ +From a52cfc804813aef8e4b304e20cf843fa6907af6c Mon Sep 17 00:00:00 2001 +From: Chris Robinson +Date: Wed, 7 Sep 2016 09:57:40 -0700 +Subject: [PATCH] Check for run-time NEON support by reading /proc/cpuinfo + +Less than ideal since documentations warn it may not list 'neon' even if it's +really supported. However, the "proper" APIs to check for NEON extensions don't +seem to exist in my toolchain. + +[Upstream commit: https://github.com/kcat/openal-soft/commit/a52cfc804813aef8e4b304e20cf843fa6907afc6] +Signed-off-by: Thomas Petazzoni +--- + Alc/helpers.c | 34 ++++++++++++++++++++++++++++++++-- + 1 file changed, 32 insertions(+), 2 deletions(-) + +diff --git a/Alc/helpers.c b/Alc/helpers.c +index 9b6c7894..4ffda46c 100644 +--- a/Alc/helpers.c ++++ b/Alc/helpers.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #ifdef HAVE_MALLOC_H + #include + #endif +@@ -232,8 +233,37 @@ void FillCPUCaps(ALuint capfilter) + #endif + #endif + #ifdef HAVE_NEON +- /* Assume Neon support if compiled with it */ +- caps |= CPU_CAP_NEON; ++ FILE *file = fopen("/proc/cpuinfo", "rt"); ++ if(file) ++ ERR("Failed to open /proc/cpuinfo, cannot check for NEON support\n"); ++ else ++ { ++ char buf[256]; ++ while(fgets(buf, sizeof(buf), file) != NULL) ++ { ++ char *str; ++ ++ if(strncmp(buf, "Features\t:", 10) != 0) ++ continue; ++ ++ TRACE("Got features string:%s\n", buf+10); ++ ++ str = buf; ++ while((str=strstr(str, "neon")) != NULL) ++ { ++ if(isspace(*(str-1)) && (str[4] == 0 || isspace(str[4]))) ++ { ++ caps |= CPU_CAP_NEON; ++ break; ++ } ++ str++; ++ } ++ break; ++ } ++ ++ fclose(file); ++ file = NULL; ++ } + #endif + + TRACE("Extensions:%s%s%s%s%s%s\n", diff --git a/package/openal/0003-Properly-check-if-proc-cpuinfo-opened.patch b/package/openal/0003-Properly-check-if-proc-cpuinfo-opened.patch new file mode 100644 index 0000000000..60a93c01e2 --- /dev/null +++ b/package/openal/0003-Properly-check-if-proc-cpuinfo-opened.patch @@ -0,0 +1,24 @@ +From c3c283a0b5d0130afafaa2a5b6ce6fbc30b6e6a1 Mon Sep 17 00:00:00 2001 +From: Chris Robinson +Date: Thu, 8 Sep 2016 02:02:09 -0700 +Subject: [PATCH] Properly check if /proc/cpuinfo opened + +[Upstream commit: https://github.com/kcat/openal-soft/commit/c3c283a0b5d0130afafaa2a5b6ce6fbc30b6e6a1] +Signed-off-by: Thomas Petazzoni +--- + Alc/helpers.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Alc/helpers.c b/Alc/helpers.c +index 4ffda46c..26ed535a 100644 +--- a/Alc/helpers.c ++++ b/Alc/helpers.c +@@ -234,7 +234,7 @@ void FillCPUCaps(ALuint capfilter) + #endif + #ifdef HAVE_NEON + FILE *file = fopen("/proc/cpuinfo", "rt"); +- if(file) ++ if(!file) + ERR("Failed to open /proc/cpuinfo, cannot check for NEON support\n"); + else + { diff --git a/package/openal/0004-Check-if-mfpu-neon-is-available-for-compiling.patch b/package/openal/0004-Check-if-mfpu-neon-is-available-for-compiling.patch new file mode 100644 index 0000000000..893a6d3168 --- /dev/null +++ b/package/openal/0004-Check-if-mfpu-neon-is-available-for-compiling.patch @@ -0,0 +1,47 @@ +From 46b3e1d08ca10e809eb2e20b6371812958b97e1f Mon Sep 17 00:00:00 2001 +From: Chris Robinson +Date: Mon, 12 Sep 2016 11:31:59 -0700 +Subject: [PATCH] Check if -mfpu=neon is available for compiling the NEON mixer + +[Upstream commit: https://github.com/kcat/openal-soft/commit/46b3e1d08ca10e809eb2e20b6371812958b97e1f] +Signed-off-by: Thomas Petazzoni +--- + CMakeLists.txt | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d92bbb7d..0d3bb5cd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -364,6 +364,7 @@ SET(SSE_SWITCH "") + SET(SSE2_SWITCH "") + SET(SSE3_SWITCH "") + SET(SSE4_1_SWITCH "") ++SET(FPU_NEON_SWITCH "") + IF(NOT MSVC) + CHECK_C_COMPILER_FLAG(-msse HAVE_MSSE_SWITCH) + IF(HAVE_MSSE_SWITCH) +@@ -381,6 +382,10 @@ IF(NOT MSVC) + IF(HAVE_MSSE4_1_SWITCH) + SET(SSE4_1_SWITCH "-msse4.1") + ENDIF() ++ CHECK_C_COMPILER_FLAG(-mfpu=neon HAVE_MFPU_NEON_SWITCH) ++ IF(HAVE_MFPU_NEON_SWITCH) ++ SET(FPU_NEON_SWITCH "-mfpu=neon") ++ ENDIF() + ENDIF() + + CHECK_C_SOURCE_COMPILES("int foo(const char *str, ...) __attribute__((format(printf, 1, 2))); +@@ -766,8 +771,11 @@ IF(HAVE_ARM_NEON_H) + IF(ALSOFT_CPUEXT_NEON) + SET(HAVE_NEON 1) + SET(ALC_OBJS ${ALC_OBJS} Alc/mixer_neon.c) ++ IF(FPU_NEON_SWITCH) ++ SET_SOURCE_FILES_PROPERTIES(Alc/mixer_neon.c PROPERTIES ++ COMPILE_FLAGS "${FPU_NEON_SWITCH}") ++ ENDIF() + SET(CPU_EXTS "${CPU_EXTS}, Neon") +- SET_SOURCE_FILES_PROPERTIES(Alc/mixer_neon.c PROPERTIES COMPILE_FLAGS -mfpu=neon) + ENDIF() + ENDIF() + IF(ALSOFT_REQUIRE_NEON AND NOT HAVE_NEON) diff --git a/package/openal/0005-Fix-detection-of-C11-atomics.patch b/package/openal/0005-Fix-detection-of-C11-atomics.patch new file mode 100644 index 0000000000..c6b9840908 --- /dev/null +++ b/package/openal/0005-Fix-detection-of-C11-atomics.patch @@ -0,0 +1,53 @@ +From 10fee6d71a1f7d6e6319005196562b4a30b4e8ff Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Tue, 2 Feb 2016 14:58:52 +0100 +Subject: [PATCH] Fix detection of C11 atomics + +Currently, the CMakeLists.txt logic to detect the availability of C11 +atomics is based on building a small program that uses the +atomic_load(). + +However, atomic_load() does not need to use any function from +libatomic (part of the gcc runtime). So even if libatomic is missing, +this test concludes that C11 atomic support is available. For example +on SPARC, the example program builds fine without linking to +libatomic, but calling other functions of the atomic_*() APIs fail +without linking to libatomic. + +So, this patch adjusts the CMakeLists.txt test to use a function that +is known to require the libatomic run-time library (on architectures +where it is needed). This way, openal will only use the __atomic_*() +built-ins when they are actually functional. + +Signed-off-by: Thomas Petazzoni +--- + CMakeLists.txt | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5784d35..a53f996 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -209,14 +209,17 @@ CHECK_C_SOURCE_COMPILES( + HAVE_C11_ALIGNAS) + + # Check if we have C11 _Atomic ++set(OLD_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) ++set(CMAKE_REQUIRED_LIBRARIES ${EXTRA_LIBS}) + CHECK_C_SOURCE_COMPILES( + "#include +- const int _Atomic foo = ATOMIC_VAR_INIT(~0); ++ int _Atomic foo = ATOMIC_VAR_INIT(~0); + int main() + { +- return atomic_load(&foo); ++ return atomic_fetch_add(&foo, 2); + }" + HAVE_C11_ATOMIC) ++set(CMAKE_REQUIRED_LIBRARIES ${OLD_REQUIRED_LIBRARIES}) + + # Add definitions, compiler switches, etc. + INCLUDE_DIRECTORIES("${OpenAL_SOURCE_DIR}/include" "${OpenAL_BINARY_DIR}") +-- +2.6.4 + diff --git a/package/openal/openal.hash b/package/openal/openal.hash index 45f1421da0..260f1b7807 100644 --- a/package/openal/openal.hash +++ b/package/openal/openal.hash @@ -1,6 +1,2 @@ # Locally calculated sha256 a341f8542f1f0b8c65241a17da13d073f18ec06658e1a1606a8ecc8bbc2b3314 openal-soft-1.17.2.tar.bz2 -sha256 9c9040269376aba77b1277bbae0f055aee535e14ad4a3ab4e66e39830504e83f 27916ce3db023454a0295ee63ea196fbc246674c.patch -sha256 4621f6b79d4bbac5ce423f227c92ad1e4f833d7e1f2ff1cc3b5f03721f75b933 a52cfc804813aef8e4b304e20cf843fa6907af6c.patch -sha256 f442da31b4001a5133f2762a5bc1e780b11d5e2d9f21b257f54695ee6d87d997 c3c283a0b5d0130afafaa2a5b6ce6fbc30b6e6a1.patch -sha256 3691c1a327b87d5fb487841459fd00d3baaa79808ecb5e3b33b349363663640f 46b3e1d08ca10e809eb2e20b6371812958b97e1f.patch diff --git a/package/openal/openal.mk b/package/openal/openal.mk index 72ebee2ad9..55bf544129 100644 --- a/package/openal/openal.mk +++ b/package/openal/openal.mk @@ -7,11 +7,6 @@ OPENAL_VERSION = 1.17.2 OPENAL_SOURCE = openal-soft-$(OPENAL_VERSION).tar.bz2 OPENAL_SITE = http://kcat.strangesoft.net/openal-releases -OPENAL_PATCH = \ - https://github.com/kcat/openal-soft/commit/27916ce3db023454a0295ee63ea196fbc246674c.patch \ - https://github.com/kcat/openal-soft/commit/a52cfc804813aef8e4b304e20cf843fa6907af6c.patch \ - https://github.com/kcat/openal-soft/commit/c3c283a0b5d0130afafaa2a5b6ce6fbc30b6e6a1.patch \ - https://github.com/kcat/openal-soft/commit/46b3e1d08ca10e809eb2e20b6371812958b97e1f.patch OPENAL_LICENSE = LGPL-2.0+ OPENAL_LICENSE_FILES = COPYING OPENAL_INSTALL_STAGING = YES