kbuild: update to version 0.1.9998svn3572 (#7536)

- Re-applied (after minor modifications) the previous .patch for
  version 0.1.9998svn3296.
- Used basically the same patch David Karoly applied to make-4.3
  to fix a build error.
- Use byacc instead of yacc to fix error: "arith.tab.h not found".
- Automatically create SvnInfo.kmk from BUILD() instead of using the
  first change from "kbuild-0.1.9998svn3296-distribution.patch".
- Disable textinfo docs (the other change from that "distribution"
  patch).
- Install "templates/*.kmk" too (can't even try to build VirtualBox's
  Guest Additions without this).
- Use $portVersion instead of hardcoded version.
This commit is contained in:
OscarL
2022-12-12 23:16:39 -03:00
committed by GitHub
parent 6b0baf3423
commit eea3243d9d
3 changed files with 93 additions and 62 deletions

View File

@@ -5,15 +5,15 @@ Its features include a template mechanism that simplifies configuration and \
a set of supporting tools that provide consistent behavior across multiple \
platforms."
HOMEPAGE="https://trac.netlabs.org/kbuild/"
COPYRIGHT="2005-2018 Knut St. Osmundsen"
COPYRIGHT="2005-2022 Knut St. Osmundsen"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://salsa.debian.org/pkg-virtualbox-team/kbuild/-/archive/upstream/0.1.9998svn3296+dfsg/kbuild-upstream-0.1.9998svn3296+dfsg.tar.bz2"
CHECKSUM_SHA256="30c025d076f561984932801c143d57e833386f6e96bf244d57d0f9074e59f683"
SOURCE_DIR="kbuild-upstream-0.1.9998svn3296+dfsg"
# No direct source archive from $HOMEPAGE, so we use the one from debian's "mirror":
SOURCE_URI="https://salsa.debian.org/pkg-virtualbox-team/kbuild/-/archive/upstream/$portVersion+dfsg/kbuild-upstream-$portVersion+dfsg.tar.bz2"
CHECKSUM_SHA256="f054cff0d71e731b946f23769a9d6225186a31f00e135f36cb347a5ecd99b9b5"
SOURCE_DIR="kbuild-upstream-$portVersion+dfsg"
PATCHES="
kbuild-0.1.9998svn3296-distribution.patch
kbuild-0.1.9998svn3296-haiku.patch
kbuild-$portVersion.patchset
"
ARCHITECTURES="all !x86_gcc2"
@@ -23,9 +23,10 @@ fi
PROVIDES="
kbuild$secondaryArchSuffix = $portVersion
cmd:kDepIDB$secondaryArchSuffix = $portVersion
cmd:kDepObj$secondaryArchSuffix = $portVersion
cmd:kDepPre$secondaryArchSuffix = $portVersion
cmd:bld_signames$secondaryArchSuffix = $portVersion
cmd:kDepIDB$secondaryArchSuffix = $portVersion
cmd:kDepObj$secondaryArchSuffix = $portVersion
cmd:kDepPre$secondaryArchSuffix = $portVersion
cmd:kmk$secondaryArchSuffix = $portVersion
cmd:kmk_append$secondaryArchSuffix = $portVersion
cmd:kmk_ash$secondaryArchSuffix = $portVersion
@@ -63,13 +64,13 @@ BUILD_PREREQUIRES="
cmd:aclocal
cmd:autopoint
cmd:autoreconf
cmd:byacc
cmd:find
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:makeinfo
cmd:yacc
"
defineDebugInfoPackage kbuild$secondaryArchSuffix \
@@ -111,7 +112,11 @@ esac
BUILD()
{
kBuild/env.sh --full make $jobArgs -f bootstrap.gmk
# Add a file with the SVN revision (so "kmk --version" displays it):
svnRevision=${portVersion:${#portVersion}-4}
printf '%s\n' "KBUILD_SVN_REV := $svnRevision" > SvnInfo.kmk
kBuild/env.sh --full make $jobArgs -f bootstrap.gmk YACC=byacc
}
INSTALL()
@@ -119,7 +124,7 @@ INSTALL()
mkdir -p $binDir $dataDir/kBuild $dataDir/profile.d
cp -R kBuild/bin/haiku.${kbuildArch}/* $binDir
cp -R kBuild/{tools,units,*.kmk} $dataDir/kBuild
cp -R kBuild/{tools,units,templates,*.kmk} $dataDir/kBuild
kbuildProfile=$dataDir/profile.d/kbuild.sh
echo "export KBUILD_PATH=$dataDir/kBuild" > $kbuildProfile

View File

@@ -1,21 +0,0 @@
diff --git a/SvnInfo.kmk b/SvnInfo.kmk
new file mode 100644
index 0000000..23713f6
--- /dev/null
+++ b/SvnInfo.kmk
@@ -0,0 +1,2 @@
+KBUILD_SVN_URL := http://svn.netlabs.org/repos/kbuild/trunk
+KBUILD_SVN_REV := 3296
diff --git a/src/kmk/doc/Makefile.am b/src/kmk/doc/Makefile.am
index 11aa4d4..caf8951 100644
--- a/src/kmk/doc/Makefile.am
+++ b/src/kmk/doc/Makefile.am
@@ -18,7 +18,7 @@
TEXI2HTML = texi2html
TEXI2HTML_FLAGS = -split_chapter
-info_TEXINFOS = make.texi
+#info_TEXINFOS = make.texi
make_TEXINFOS = fdl.texi make-stds.texi
CLEANFILES = make*.html

View File

@@ -1,8 +1,14 @@
From e1c53c298daa1a862d3f43ae2d5607119d979f43 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Thu, 24 Nov 2022 21:19:51 -0300
Subject: Re-applied changes from kbuild-0.1.9998svn3296-haiku.patch.
diff --git a/src/kmk/Makefile.am b/src/kmk/Makefile.am
index ca8acb1..a9c96c8 100644
index 12cc103..3f91c9e 100644
--- a/src/kmk/Makefile.am
+++ b/src/kmk/Makefile.am
@@ -98,6 +98,9 @@ kmk_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
@@ -99,6 +99,9 @@ kmk_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
kmkbuiltin/osdep.c \
kmkbuiltin/kbuild_protection.c \
kmkbuiltin/common-env-and-cwd-opt.c
@@ -12,7 +18,7 @@ index ca8acb1..a9c96c8 100644
kmk_redirect_SOURCES = kmkbuiltin/redirect.c \
kmkbuiltin/common-env-and-cwd-opt.c \
@@ -113,6 +116,9 @@ noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \
@@ -114,6 +117,9 @@ noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \
#kmk_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@
kmk_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ \
$(GUILE_LIBS)
@@ -23,13 +29,13 @@ index ca8acb1..a9c96c8 100644
if WINDOWSENV
kmk_LDADD += $(W32LIB)
diff --git a/src/kmk/Makefile.kmk b/src/kmk/Makefile.kmk
index 44e86e7..2405310 100644
index ff93ae5..1e9ea5b 100644
--- a/src/kmk/Makefile.kmk
+++ b/src/kmk/Makefile.kmk
@@ -61,6 +61,10 @@ ifneq ($(KBUILD_TARGET),os2)
TEMPLATE_BIN-KMK_INCS += glob
endif
TEMPLATE_BIN-KMK_LIBS = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS) $(kmkmissing_1_TARGET) $(LIB_KUTIL)
@@ -63,6 +63,10 @@ endif
TEMPLATE_BIN-KMK_LIBS = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS) $(kmkmissing_1_TARGET) $(LIB_KUTIL)
TEMPLATE_BIN-KMK_LIBS.x86 = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS.x86)
TEMPLATE_BIN-KMK_LIBS.amd64 = $(LIB_KUTIL) $(TEMPLATE_BIN-THREADED_LIBS.amd64)
+ifeq ($(KBUILD_TARGET),haiku)
+ TEMPLATE_BIN-KMK_DEFS += _BSD_SOURCE
+ TEMPLATE_BIN-KMK_LIBS += bsd
@@ -263,10 +269,10 @@ index 3580374..7c79b6f 100644
-
-#include "inlined_memchr.h"
diff --git a/src/kmk/configure.ac b/src/kmk/configure.ac
index 76a38a2..9eddc7d 100644
index d950182..44beae8 100644
--- a/src/kmk/configure.ac
+++ b/src/kmk/configure.ac
@@ -431,6 +431,8 @@ AC_DEFINE_UNQUOTED([MAKE_HOST],["$host"],[Build host information.])
@@ -432,6 +432,8 @@ AC_DEFINE_UNQUOTED([MAKE_HOST],["$host"],[Build host information.])
MAKE_HOST="$host"
AC_SUBST([MAKE_HOST])
@@ -276,7 +282,7 @@ index 76a38a2..9eddc7d 100644
AM_CONDITIONAL([WINDOWSENV], [false])
diff --git a/src/kmk/getopt.c b/src/kmk/getopt.c
index f0d58a9..cc43ab8 100644
index b7999ea..5c4dee3 100644
--- a/src/kmk/getopt.c
+++ b/src/kmk/getopt.c
@@ -68,6 +68,10 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
@@ -291,7 +297,7 @@ index f0d58a9..cc43ab8 100644
# include <unixlib.h>
# if HAVE_STRING_H - 0
diff --git a/src/kmk/kmkbuiltin.h b/src/kmk/kmkbuiltin.h
index c6c40f0..32b0add 100644
index 955a04d..043980b 100644
--- a/src/kmk/kmkbuiltin.h
+++ b/src/kmk/kmkbuiltin.h
@@ -26,6 +26,10 @@
@@ -340,7 +346,7 @@ index eff20bb..9b27737 100644
extern int haiku_lchmod(const char *pszPath, mode_t mode);
diff --git a/src/kmk/kmkbuiltin/install.c b/src/kmk/kmkbuiltin/install.c
index 2864573..1bdf3e5 100644
index 00bdf73..262cb6d 100644
--- a/src/kmk/kmkbuiltin/install.c
+++ b/src/kmk/kmkbuiltin/install.c
@@ -68,9 +68,7 @@ __FBSDID("$FreeBSD: src/usr.bin/xinstall/xinstall.c,v 1.66 2005/01/25 14:34:57 s
@@ -355,10 +361,10 @@ index 2864573..1bdf3e5 100644
# include <util.h>
# define strtofflags(a, b, c) string_to_flags(a, b, c)
diff --git a/src/kmk/kmkbuiltin/mkdir.c b/src/kmk/kmkbuiltin/mkdir.c
index 2fede17..ffee5d9 100644
index 65e961f..d82544f 100644
--- a/src/kmk/kmkbuiltin/mkdir.c
+++ b/src/kmk/kmkbuiltin/mkdir.c
@@ -54,9 +54,7 @@ __FBSDID("$FreeBSD: src/bin/mkdir/mkdir.c,v 1.28 2004/04/06 20:06:48 markm Exp $
@@ -55,9 +55,7 @@ __FBSDID("$FreeBSD: src/bin/mkdir/mkdir.c,v 1.28 2004/04/06 20:06:48 markm Exp $
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -385,7 +391,7 @@ index 7db962c..cf2a8ed 100644
#include "getopt_r.h"
#ifdef __sun__
diff --git a/src/kmk/kmkbuiltin/rm.c b/src/kmk/kmkbuiltin/rm.c
index 41cbd7c..2a8c450 100644
index 5753b3e..da12cbf 100644
--- a/src/kmk/kmkbuiltin/rm.c
+++ b/src/kmk/kmkbuiltin/rm.c
@@ -48,9 +48,9 @@ static char sccsid[] = "@(#)rm.c 8.5 (Berkeley) 4/18/94";
@@ -659,18 +665,59 @@ index d341fe0..48876d4 100644
#ifdef VMS
# include <unixlib.h>
# if HAVE_STRING_H - 0
diff --git a/src/sed/lib/utils.c b/src/sed/lib/utils.c
index 14e6073..fdec2cb 100644
--- a/src/sed/lib/utils.c
+++ b/src/sed/lib/utils.c
@@ -35,6 +35,10 @@
# include <stdlib.h>
#endif /* HAVE_STDLIB_H */
--
2.37.3
From e38b9486f39daeb1e1e6858afafe7807714b4925 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Thu, 24 Nov 2022 21:23:48 -0300
Subject: Disable texinfo docs.
Taken from kbuild-0.1.9998svn3296-distribution.patch.
diff --git a/src/kmk/doc/Makefile.am b/src/kmk/doc/Makefile.am
index 11aa4d4..caf8951 100644
--- a/src/kmk/doc/Makefile.am
+++ b/src/kmk/doc/Makefile.am
@@ -18,7 +18,7 @@
TEXI2HTML = texi2html
TEXI2HTML_FLAGS = -split_chapter
+#ifdef __HAIKU__
+# include <unistd.h>
+#endif
+
#include "utils.h"
-info_TEXINFOS = make.texi
+#info_TEXINFOS = make.texi
make_TEXINFOS = fdl.texi make-stds.texi
#ifdef KBUILD_OS_WINDOWS /* bird: Way faster console output! */
CLEANFILES = make*.html
--
2.37.3
From a48564a9f0239d20b061c0541816030d265c68b3 Mon Sep 17 00:00:00 2001
From: Oscar Lesta <oscar.lesta@gmail.com>
Date: Thu, 24 Nov 2022 22:07:18 -0300
Subject: Fix usage of sizeof on incomplete type.
Using basically the same patch David Karoly applied to make-4.3
to fix:
error: invalid application of 'sizeof' to incomplete type 'char[]`
That happens on Haiku after some <dirent.h> changes.
diff --git a/src/kmk/dir.c b/src/kmk/dir.c
index 1709479..4044cfa 100644
--- a/src/kmk/dir.c
+++ b/src/kmk/dir.c
@@ -1469,7 +1469,7 @@ read_dirstream (__ptr_t stream)
/* The glob interface wants a 'struct dirent', so mock one up. */
struct dirent *d;
unsigned int len = df->length + 1;
- unsigned int sz = sizeof (*d) - sizeof (d->d_name) + len;
+ unsigned int sz = offsetof(struct dirent, d_name) + len;
if (sz > bufsz)
{
bufsz *= 2;
--
2.37.3