Package: kbuild
Version: 1:0.1.9998svn3127+dfsg-1
Severity: important
User: debian-gl...@lists.debian.org
Usertags: 2.27

kbuild 1:0.1.9998svn3127+dfsg-1 fails to build with glibc 2.27
(2.27-0experimental0 from experimental):

| gcc -DHAVE_CONFIG_H -I. 
-I/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob -I..   -Wdate-time 
-D_FORTIFY_SOURCE=2  -g -O2 
-fdebug-prefix-map=/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg=. 
-fstack-protector-strong -Wformat -Werror=format-security -MT glob.o -MD -MP 
-MF .deps/glob.Tpo -c -o glob.o 
/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c: In function 
'glob':
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:577:23: 
warning: implicit declaration of function '__alloca'; did you mean 'alloca'? 
[-Wimplicit-function-declaration]
|        newp = (char *) __alloca (dirlen + 1);
|                        ^~~~~~~~
|                        alloca
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:577:14: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|        newp = (char *) __alloca (dirlen + 1);
|               ^
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:705:15: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|         newp = (char *) __alloca (home_len + dirlen);
|                ^
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:728:15: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|         newp = (char *) __alloca (end_name - dirname);
|                ^
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:779:15: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|         newp = (char *) __alloca (home_len + rest_len + 1);
|                ^
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:815:11: 
warning: implicit declaration of function '__stat'; did you mean '__xstat'? 
[-Wimplicit-function-declaration]
|          : __stat (dirname, &st)) == 0
|            ^~~~~~
|            __xstat
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c: In function 
'glob_in_dir':
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:1271:21: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|     char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
|                      ^
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:1302:12: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|     names = (struct globlink *) __alloca (sizeof (struct globlink));
|             ^
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:1360:32: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|          struct globlink *new = (struct globlink *)
|                                 ^
| /<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/glob.c:1386:15: 
warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
|        names = (struct globlink *) __alloca (sizeof (struct globlink));
|                ^
| mv -f .deps/glob.Tpo .deps/glob.Po
| gcc -DHAVE_CONFIG_H -I. 
-I/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob -I..   -Wdate-time 
-D_FORTIFY_SOURCE=2  -g -O2 
-fdebug-prefix-map=/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg=. 
-fstack-protector-strong -Wformat -Werror=format-security -MT fnmatch.o -MD -MP 
-MF .deps/fnmatch.Tpo -c -o fnmatch.o 
/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/src/kmk/glob/fnmatch.c
| mv -f .deps/fnmatch.Tpo .deps/fnmatch.Po
| rm -f libglob.a
| ar cru libglob.a glob.o fnmatch.o 
| ar: `u' modifier ignored since `D' is the default (see `U')
| ranlib libglob.a
| make[5]: Leaving directory 
'/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/out/linux.amd64/release/bootstrap/kmk/glob'

[...]

| gcc -Wall -Wextra -Wdeclaration-after-statement -Wshadow -Wpointer-arith 
-Wbad-function-cast -g -O2 
-fdebug-prefix-map=/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg=. 
-fstack-protector-strong -Wformat -Werror=format-security  -Wl,-z,relro 
-Wl,--as-needed -o kmk ar.o arscan.o commands.o default.o dir.o expand.o file.o 
function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o remake.o 
remote-stub.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o 
expreval.o incdep.o strcache2.o alloccache.o kbuild.o kbuild-object.o 
electric.o md5.o kDep.o kbuild_version.o dos2unix.o maybe_con_fwrite.o 
kmkbuiltin.o append.o cat.o chmod.o cmp.o cmp_util.o cp.o cp_utils.o echo.o 
expr.o install.o kDepIDB.o kDepObj.o ln.o md5sum.o mkdir.o mv.o printf.o 
redirect.o rm.o rmdir.o sleep.o test.o touch.o err.o fts.o setmode.o strmode.o 
strlcpy.o osdep.o kbuild_protection.o common-env-and-cwd-opt.o glob/libglob.a  
| chmod.o: In function `kmk_builtin_chmod':
| ./out/linux.amd64/release/bootstrap/kmk/./src/kmk/kmkbuiltin/chmod.c:184: 
warning: lchmod is not implemented and will always fail
| glob/libglob.a(glob.o): In function `glob_in_dir':
| ./out/linux.amd64/release/bootstrap/kmk/glob/./src/kmk/glob/glob.c:1386: 
undefined reference to `__alloca'
| ./out/linux.amd64/release/bootstrap/kmk/glob/./src/kmk/glob/glob.c:1361: 
undefined reference to `__alloca'
| ./out/linux.amd64/release/bootstrap/kmk/glob/./src/kmk/glob/glob.c:1302: 
undefined reference to `__alloca'
| ./out/linux.amd64/release/bootstrap/kmk/glob/./src/kmk/glob/glob.c:1271: 
undefined reference to `__alloca'
| glob/libglob.a(glob.o): In function `glob':
| ./out/linux.amd64/release/bootstrap/kmk/glob/./src/kmk/glob/glob.c:577: 
undefined reference to `__alloca'
| 
glob/libglob.a(glob.o):./out/linux.amd64/release/bootstrap/kmk/glob/./src/kmk/glob/glob.c:728:
 more undefined references to `__alloca' follow
| collect2: error: ld returned 1 exit status
| Makefile:750: recipe for target 'kmk' failed
| make[5]: *** [kmk] Error 1
| make[5]: Leaving directory 
'/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/out/linux.amd64/release/bootstrap/kmk'
| Makefile:1483: recipe for target 'all-recursive' failed
| make[4]: *** [all-recursive] Error 1
| make[4]: Leaving directory 
'/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/out/linux.amd64/release/bootstrap/kmk'
| Makefile:651: recipe for target 'all' failed
| make[3]: *** [all] Error 2
| make[3]: Leaving directory 
'/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/out/linux.amd64/release/bootstrap/kmk'
| bootstrap.gmk:176: recipe for target 
'/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/out/linux.amd64/release/bootstrap/kmk/kmk'
 failed
| make[2]: *** 
[/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg/out/linux.amd64/release/bootstrap/kmk/kmk]
 Error 2
| make[2]: Leaving directory '/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg'
| kBuild/env.sh: info: rc=2: make -f bootstrap.gmk 
SRCDIR=/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg ASH=/bin/bash ECHO=/bin/echo 
MKDIR=/bin/mkdir CP=/bin/cp RM=/bin/rm INSTALL=/usr/bin/install 
YACC=/usr/bin/byacc
| debian/rules:21: recipe for target 'override_dh_auto_build' failed
| make[1]: *** [override_dh_auto_build] Error 2
| make[1]: Leaving directory '/<<BUILDDIR>>/kbuild-0.1.9998svn3127+dfsg'
| debian/rules:14: recipe for target 'build-arch' failed
| make: *** [build-arch] Error 2
| dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit 
status 2

A full build log is available there: 
http://aws-logs.debian.net/2018/02/07/glibc-exp/kbuild_0.1.9998svn3127+dfsg-1_unstable_glibc-exp.log

The problem is that the glibc 2.27 slightly changed its internal glob
implementation. kbuild uses an internal copy of make, which detects that
it doesn't support the new interface and switch to its internal
implementation which is slightly broken.

The same kind of patch as for make-dfsg should probably be applied:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=891365

Reply via email to