Source: mig
Version: 1.8+git20231217-8
Severity: important
Tags: ftbfs upstream
Justification: fails to build from source
User: [email protected]
Usertags: glibc-2.43

Dear maintainer(s),

mig fails to build from source with glibc 2.43, currently in
experimental. From the build log:

| gcc -DPACKAGE_NAME=\"GNU\ MIG\" -DPACKAGE_TARNAME=\"mig\" 
-DPACKAGE_VERSION=\"1.8+git20231217\" -DPACKAGE_STRING=\"GNU\ MIG\ 
1.8+git20231217\" -DPACKAGE_BUGREPORT=\"[email protected]\" 
-DPACKAGE_URL=\"https://www.gnu.org/software/mig/\"; -DYYTEXT_POINTER=1 
-DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 
-DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 
-DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -I. -I..   -Wdate-time -D_FORTIFY_SOURCE=2  
-Wall -pipe -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/build/reproducible-path/mig-1.8+git20231217=. 
-fstack-protector-strong -fstack-clash-protection -Wformat 
-Werror=format-security -mbranch-protection=standard -c -o server.o ../server.c

...

| ../server.c: In function ‘InArgMsgField’:
| ../server.c:585:23: warning: unused variable ‘it’ [-Wunused-variable]
|   585 |     const ipc_type_t *it = arg->argType;
|       |                       ^~
| ../server.c: In function ‘WriteExtractArg’:
| ../server.c:775:30: warning: format ‘%d’ expects argument of type ‘int’, but 
argument 4 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
|   775 |         fprintf(file, "\t%s[%d] = \'\\0\';\n", InArgMsgField(arg), 
total_bytes - 1);
|       |                             ~^                                     
~~~~~~~~~~~~~~~
|       |                              |                                        
         |
|       |                              int                                      
         size_t {aka long unsigned int}
|       |                             %ld
| ../server.c: In function ‘WritePackArg’:
| ../server.c:1338:31: warning: too many arguments for format 
[-Wformat-extra-args]
|  1338 |                 fprintf(file, "\t\t\tOutP->%s[i - 1].name = 
tmp_port_name;\n", arg->argMsgField, arg->argVarName);
|       |                               
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| lexxer.l: In function ‘doSharp’:
| lexxer.l:282:22: error: assignment of read-only location ‘*(const char 
*)strrchr(body, 34)’
| make[2]: *** [Makefile:576: lexxer.o] Error 1
| make[2]: *** Waiting for unfinished jobs....
| rm cpu.symo
| make[2]: Leaving directory 
'/build/reproducible-path/mig-1.8+git20231217/build'
| make[1]: *** [Makefile:598: all-recursive] Error 1
| make[1]: Leaving directory 
'/build/reproducible-path/mig-1.8+git20231217/build'
| dh_auto_build: error: cd build && make -j128 returned exit code 2
| make: *** [debian/rules:16: binary] Error 25
| dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2

The full build log is available here [1].

The issue is due to ISO C23 declaration of bsearch, memchr, strchr,
strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr and wmemchr,
which now returns a pointer to a const-qualified type when the input
argument is a pointer to a const-qualified type [2].

I would like to thanks Emanuele Rocca for doing the archive rebuild on
a fast arm64 server.

Regards
Aurelien

[1] https://people.debian.org/~ema/glibc-2.43-rebuilds/output-1/mig_arm64.build
[2] 
https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=e271fb2e4d76903c77a302aaec1ca22ce31027d0;hb=f762ccf84f122d1354f103a151cba8bde797d521#l19

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
[email protected]                     http://aurel32.net

Reply via email to