diff options
author | Viorel Munteanu <ceamac@gentoo.org> | 2022-11-23 13:13:48 +0200 |
---|---|---|
committer | Viorel Munteanu <ceamac@gentoo.org> | 2022-11-27 12:06:57 +0200 |
commit | f2059dfcf305fa26ba92d034ae6d889e15e6fb29 (patch) | |
tree | 61799a31855b86d52620377ffe90761db61827e0 /dev-util/kbuild | |
parent | dev-python/bareos: add 21.1.5 (diff) | |
download | gentoo-f2059dfcf305fa26ba92d034ae6d889e15e6fb29.tar.gz gentoo-f2059dfcf305fa26ba92d034ae6d889e15e6fb29.tar.bz2 gentoo-f2059dfcf305fa26ba92d034ae6d889e15e6fb29.zip |
dev-util/kbuild: fix compilation with clang
Closes: https://bugs.gentoo.org/875449
Closes: https://bugs.gentoo.org/734302
Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
Diffstat (limited to 'dev-util/kbuild')
-rw-r--r-- | dev-util/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch | 23 | ||||
-rw-r--r-- | dev-util/kbuild/files/kbuild-0.1.9998.3499-int-conversion.patch | 26 | ||||
-rw-r--r-- | dev-util/kbuild/kbuild-0.1.9998.3499-r2.ebuild | 76 | ||||
-rw-r--r-- | dev-util/kbuild/kbuild-0.1.9998.3572-r2.ebuild | 69 | ||||
-rw-r--r-- | dev-util/kbuild/kbuild-9999.ebuild | 2 |
5 files changed, 196 insertions, 0 deletions
diff --git a/dev-util/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch b/dev-util/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch new file mode 100644 index 000000000000..7d7f1f7232eb --- /dev/null +++ b/dev-util/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch @@ -0,0 +1,23 @@ +A few files are compiled with gcc regardless of setting CC + +This file seems to do some guesswork, override it with CC if set + +Bug: https://bugs.gentoo.org/734302 + +--- a/kBuild/tools/GCC3.kmk ++++ b/kBuild/tools/GCC3.kmk +@@ -84,6 +84,14 @@ + TOOL_GCC3_CXX += -fmessage-length=0 + endif + ++ifneq ($(CC),) ++ TOOL_GCC3_CC = $(CC) ++ TOOL_GCC3_LD = $(CC) ++endif ++ifneq ($(AR),) ++ TOOL_GCC3_AR = $(AR) ++endif ++ + # General Properties used by kBuild + TOOL_GCC3_COBJSUFF ?= .o + TOOL_GCC3_CFLAGS ?= diff --git a/dev-util/kbuild/files/kbuild-0.1.9998.3499-int-conversion.patch b/dev-util/kbuild/files/kbuild-0.1.9998.3499-int-conversion.patch new file mode 100644 index 000000000000..6afdeeb6e7a6 --- /dev/null +++ b/dev-util/kbuild/files/kbuild-0.1.9998.3499-int-conversion.patch @@ -0,0 +1,26 @@ +Fix int to pointer conversion for clang + +Note - this parameter was not actually used inside eval_buffer because of a define. + +Bug: https://bugs.gentoo.org/875449 + +--- a/src/kmk/loadapi.c ++++ b/src/kmk/loadapi.c +@@ -20,6 +20,8 @@ + #include "variable.h" + #include "dep.h" + ++#include <string.h> ++ + /* Allocate a buffer in our context, so we can free it. */ + char * + gmk_alloc (unsigned int len) +@@ -59,7 +61,7 @@ + install_variable_buffer (&pbuf, &plen); + + s = xstrdup (buffer); +- eval_buffer (s, flp IF_WITH_VALUE_LENGTH_PARAM (strlen (s) /** @todo suboptimal */)); ++ eval_buffer (s, flp IF_WITH_VALUE_LENGTH_PARAM (strchr (s, 0) /** @todo suboptimal */)); + free (s); + + restore_variable_buffer (pbuf, plen); diff --git a/dev-util/kbuild/kbuild-0.1.9998.3499-r2.ebuild b/dev-util/kbuild/kbuild-0.1.9998.3499-r2.ebuild new file mode 100644 index 000000000000..63ab7642a44d --- /dev/null +++ b/dev-util/kbuild/kbuild-0.1.9998.3499-r2.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools toolchain-funcs + +MY_P="${P}-src" +DESCRIPTION="A makefile framework for writing simple makefiles for complex tasks" +HOMEPAGE="https://trac.netlabs.org/kbuild/wiki" +#SRC_URI="ftp://ftp.netlabs.org/pub/${PN}/${MY_P}.tar.gz" +SRC_URI="https://dev.gentoo.org/~polynomial-c/${MY_P}.tar.xz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +BDEPEND=" + sys-apps/texinfo + sys-devel/flex + sys-devel/gettext + virtual/pkgconfig + virtual/yacc +" + +PATCHES=( + "${FILESDIR}/${PN}-0.1.9998.3407-unknown_configure_opt.patch" + "${FILESDIR}/${PN}-0.1.5-gentoo-docdir.patch" + "${FILESDIR}/${PN}-0.1.9998_pre20120806-qa.patch" + "${FILESDIR}/${PN}-0.1.9998_pre20110817-kash-link-pthread.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-gold.patch" + + # Please check on version bumps if this can be removed + "${FILESDIR}/${PN}-0.1.9998.3499-kash-no_separate_parser_allocator.patch" + + "${FILESDIR}/${PN}-0.1.9998.3572-fix-bison.patch" + "${FILESDIR}/${PN}-0.1.9998.3572-fix-lto.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-implicit-function-declaration.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-int-conversion.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-fix-CC.patch" +) + +pkg_setup() { + # Package fails with distcc (bug #255371) + export DISTCC_DISABLE=1 +} + +src_prepare() { + default + + # Add a file with the svn revision this package was pulled from + printf '%s\n' "KBUILD_SVN_REV := $(ver_cut 4)" \ + > SvnInfo.kmk || die + + cd "${S}/src/kmk" || die + eautoreconf + cd "${S}/src/sed" || die + eautoreconf + + sed -e "s@_LDFLAGS\.$(tc-arch)*.*=@& ${LDFLAGS}@g" \ + -e "s@_CFLAGS\.$(tc-arch)*.*=@& ${CFLAGS}@g" \ + -e "s@_CXXFLAGS\.$(tc-arch)*.*=@& ${CXXFLAGS}@g" \ + -i "${S}"/Config.kmk || die #332225 + tc-export CC PKG_CONFIG RANLIB #AR does not work here +} + +src_compile() { + kBuild/env.sh --full emake -f bootstrap.gmk AUTORECONF=true AR="$(tc-getAR)" \ + || die "bootstrap failed" +} + +src_install() { + kBuild/env.sh kmk NIX_INSTALL_DIR=/usr PATH_INS="${D}" install \ + || die "install failed" +} diff --git a/dev-util/kbuild/kbuild-0.1.9998.3572-r2.ebuild b/dev-util/kbuild/kbuild-0.1.9998.3572-r2.ebuild new file mode 100644 index 000000000000..cd4193e79001 --- /dev/null +++ b/dev-util/kbuild/kbuild-0.1.9998.3572-r2.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools toolchain-funcs + +DESCRIPTION="A makefile framework for writing simple makefiles for complex tasks" +HOMEPAGE="https://trac.netlabs.org/kbuild/wiki" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${P}-src.tar.xz" + +LICENSE="GPL-3+" +SLOT="0" +#KEYWORDS="~amd64 ~x86" # for testing only. This version is buggy +IUSE="" + +BDEPEND=" + sys-apps/texinfo + sys-devel/flex + sys-devel/gettext + virtual/pkgconfig + virtual/yacc +" + +PATCHES=( + "${FILESDIR}/${PN}-0.1.9998.3407-unknown_configure_opt.patch" + "${FILESDIR}/${PN}-0.1.5-gentoo-docdir.patch" + "${FILESDIR}/${PN}-0.1.9998_pre20120806-qa.patch" + "${FILESDIR}/${PN}-0.1.9998_pre20110817-kash-link-pthread.patch" + "${FILESDIR}/${PN}-0.1.9998.3572-fix-bison.patch" + "${FILESDIR}/${PN}-0.1.9998.3572-fix-lto.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-implicit-function-declaration.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-int-conversion.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-fix-CC.patch" +) + +pkg_setup() { + # Package fails with distcc (bug #255371) + export DISTCC_DISABLE=1 +} + +src_prepare() { + default + + # Add a file with the svn revision this package was pulled from + printf '%s\n' "KBUILD_SVN_REV := $(ver_cut 4)" \ + > SvnInfo.kmk || die + + cd "${S}/src/kmk" || die + eautoreconf + cd "${S}/src/sed" || die + eautoreconf + + sed -e "s@_LDFLAGS\.$(tc-arch)*.*=@& ${LDFLAGS}@g" \ + -e "s@_CFLAGS\.$(tc-arch)*.*=@& ${CFLAGS}@g" \ + -e "s@_CXXFLAGS\.$(tc-arch)*.*=@& ${CXXFLAGS}@g" \ + -i "${S}"/Config.kmk || die #332225 + tc-export CC PKG_CONFIG RANLIB #AR does not work here +} + +src_compile() { + kBuild/env.sh --full emake -f bootstrap.gmk AUTORECONF=true AR="$(tc-getAR)" \ + || die "bootstrap failed" +} + +src_install() { + kBuild/env.sh kmk NIX_INSTALL_DIR=/usr PATH_INS="${D}" install \ + || die "install failed" +} diff --git a/dev-util/kbuild/kbuild-9999.ebuild b/dev-util/kbuild/kbuild-9999.ebuild index 79e18d1b7a14..889cf6178062 100644 --- a/dev-util/kbuild/kbuild-9999.ebuild +++ b/dev-util/kbuild/kbuild-9999.ebuild @@ -37,6 +37,8 @@ PATCHES=( "${FILESDIR}/${PN}-0.1.9998.3572-fix-bison.patch" "${FILESDIR}/${PN}-0.1.9998.3572-fix-lto.patch" "${FILESDIR}/${PN}-0.1.9998.3499-implicit-function-declaration.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-int-conversion.patch" + "${FILESDIR}/${PN}-0.1.9998.3499-fix-CC.patch" ) pkg_setup() { |