summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViorel Munteanu <ceamac@gentoo.org>2022-11-23 13:13:48 +0200
committerViorel Munteanu <ceamac@gentoo.org>2022-11-27 12:06:57 +0200
commitf2059dfcf305fa26ba92d034ae6d889e15e6fb29 (patch)
tree61799a31855b86d52620377ffe90761db61827e0 /dev-util/kbuild
parentdev-python/bareos: add 21.1.5 (diff)
downloadgentoo-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.patch23
-rw-r--r--dev-util/kbuild/files/kbuild-0.1.9998.3499-int-conversion.patch26
-rw-r--r--dev-util/kbuild/kbuild-0.1.9998.3499-r2.ebuild76
-rw-r--r--dev-util/kbuild/kbuild-0.1.9998.3572-r2.ebuild69
-rw-r--r--dev-util/kbuild/kbuild-9999.ebuild2
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() {