From c49dc9bc9e89953423f60ca7ce1beb69bce2ca5b Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 12 Apr 2020 04:42:05 +0100 Subject: dev-libs/ocl-icd : add gcc10 patch --- dev-libs/ocl-icd/files/ocl-icd-2.2.12-gcc-10.patch | 39 ++++++++++++++++ dev-libs/ocl-icd/ocl-icd-2.2.12-r10.ebuild | 52 --------------------- dev-libs/ocl-icd/ocl-icd-2.2.12-r2.ebuild | 54 ++++++++++++++++++++++ 3 files changed, 93 insertions(+), 52 deletions(-) create mode 100644 dev-libs/ocl-icd/files/ocl-icd-2.2.12-gcc-10.patch delete mode 100644 dev-libs/ocl-icd/ocl-icd-2.2.12-r10.ebuild create mode 100644 dev-libs/ocl-icd/ocl-icd-2.2.12-r2.ebuild diff --git a/dev-libs/ocl-icd/files/ocl-icd-2.2.12-gcc-10.patch b/dev-libs/ocl-icd/files/ocl-icd-2.2.12-gcc-10.patch new file mode 100644 index 00000000..64948d5b --- /dev/null +++ b/dev-libs/ocl-icd/files/ocl-icd-2.2.12-gcc-10.patch @@ -0,0 +1,39 @@ +https://bugs.gentoo.org/706098 + +From 4667bddd365bcc1dc66c483835971f0083b44b1d Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Wed, 22 Jan 2020 19:38:23 +0000 +Subject: [PATCH] icd_generator.rb: fix build failure against gcc-10 + +On gcc-10 (and gcc-9 -fno-common) build fails as: + +``` +libtool: link: gcc -shared -fPIC -DPIC .libs/libdummy_icd.o .libs/libdummy_icd_gen.o \ + -ldl -g -O2 -Wl,-soname -Wl,libdummycl.so.0 -o .libs/libdummycl.so.0.0.0 +ld: .libs/libdummy_icd_gen.o:/home/slyfox/dev/git/ocl-icd/libdummy_icd_gen.h:226: + multiple definition of `master_dispatch'; .libs/libdummy_icd.o:/home/slyfox/dev/git/ocl-icd/libdummy_icd_gen.h:226: first defined here +``` + +gcc-10 will change the default from -fcommon to fno-common: +https://gcc.gnu.org/PR85678. + +The error also happens if CFLAGS=-fno-common passed explicitly. + +Reported-by: Anthony Parsons +Bug: https://bugs.gentoo.org/706098 +Signed-off-by: Sergei Trofimovich +--- + icd_generator.rb | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/icd_generator.rb ++++ b/icd_generator.rb +@@ -207,7 +207,7 @@ def self.generate_libdummy_icd_header + } + libdummy_icd_structures += "};\n\n" + libdummy_icd_structures += "#pragma GCC visibility push(hidden)\n\n" +- libdummy_icd_structures += "struct _cl_icd_dispatch master_dispatch; \n\n" ++ libdummy_icd_structures += "extern struct _cl_icd_dispatch master_dispatch; \n\n" + $use_name_in_test.each { |k, f| + libdummy_icd_structures += "typeof(#{f}) INT#{f};\n" + } diff --git a/dev-libs/ocl-icd/ocl-icd-2.2.12-r10.ebuild b/dev-libs/ocl-icd/ocl-icd-2.2.12-r10.ebuild deleted file mode 100644 index ec8e555b..00000000 --- a/dev-libs/ocl-icd/ocl-icd-2.2.12-r10.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic multilib-minimal - -DESCRIPTION="Alternative to vendor specific OpenCL ICD loaders" -HOMEPAGE="https://github.com/OCL-dev/ocl-icd" -SRC_URI="https://github.com/OCL-dev/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -LICENSE="BSD-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE="+khronos-headers" - -BDEPEND="dev-lang/ruby:2.5 - virtual/rubygems" -RDEPEND="app-eselect/eselect-opencl" - -src_prepare() { - replace-flags -Os -O2 # bug 646122 - - default - eautoreconf -} - -multilib_src_configure() { - ECONF_SOURCE="${S}" econf --enable-pthread-once -} - -multilib_src_install() { - default - - # Drop .la files - find "${ED}" -name '*.la' -delete || die - - OCL_DIR="/usr/$(get_libdir)/OpenCL/vendors/ocl-icd" - dodir ${OCL_DIR}/{,include} - - # Install vendor library - mv -f "${ED}/usr/$(get_libdir)"/libOpenCL* "${ED}${OCL_DIR}" || die "Can't install vendor library" - - # Install vendor headers - if use khronos-headers; then - cp -r "${S}/khronos-headers/CL" "${ED}${OCL_DIR}/include" || die "Can't install vendor headers" - fi -} - -pkg_postinst() { - eselect opencl set --use-old ${PN} -} diff --git a/dev-libs/ocl-icd/ocl-icd-2.2.12-r2.ebuild b/dev-libs/ocl-icd/ocl-icd-2.2.12-r2.ebuild new file mode 100644 index 00000000..451b66f7 --- /dev/null +++ b/dev-libs/ocl-icd/ocl-icd-2.2.12-r2.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic multilib-minimal + +DESCRIPTION="Alternative to vendor specific OpenCL ICD loaders" +HOMEPAGE="https://github.com/OCL-dev/ocl-icd" +SRC_URI="https://github.com/OCL-dev/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="+khronos-headers" + +BDEPEND="dev-lang/ruby:2.5 + virtual/rubygems" +RDEPEND="app-eselect/eselect-opencl" + +PATCHES=("${FILESDIR}"/${P}-gcc-10.patch) + +src_prepare() { + replace-flags -Os -O2 # bug 646122 + + default + eautoreconf +} + +multilib_src_configure() { + ECONF_SOURCE="${S}" econf --enable-pthread-once +} + +multilib_src_install() { + default + + # Drop .la files + find "${ED}" -name '*.la' -delete || die + + OCL_DIR="/usr/$(get_libdir)/OpenCL/vendors/ocl-icd" + dodir ${OCL_DIR}/{,include} + + # Install vendor library + mv -f "${ED}/usr/$(get_libdir)"/libOpenCL* "${ED}${OCL_DIR}" || die "Can't install vendor library" + + # Install vendor headers + if use khronos-headers; then + cp -r "${S}/khronos-headers/CL" "${ED}${OCL_DIR}/include" || die "Can't install vendor headers" + fi +} + +pkg_postinst() { + eselect opencl set --use-old ${PN} +} -- cgit v1.2.3