Bug#891505: glibc: Causes FTBFS of gcc-8 on hurd-i386
Svante Signell, on mar. 27 févr. 2018 10:26:35 +0100, wrote: > On Mon, 2018-02-26 at 23:55 +0100, Samuel Thibault wrote: > > Svante Signell, on lun. 26 févr. 2018 11:22:22 +0100, wrote: > > > creates a defect gen-sysinfo.go file when libc0.3 >= 2.26-* is installed. > > > > A lot of cleanup has happened, yes. The question is what actually made > > gcc-8 to break. Just looking at the diff of the build logs, there's > > > > could not determine number of signals > ... > > To confirm this hypothesis, you could modify your > > /usr/include/i386-gnu/bits/signum-generic.h > > from > > #define _NSIG (__SIGRTMAX + 1) > > to > > #define _NSIG 32 > > You mean 33, right? Indeed. > With that change the number of signals are correctly calculated. However, > there > are still problems with the negative values of _EMIG_* error for Errno() > > sysinfo.go:3399:35: error: integer constant overflow > const EMIG_DESTROY_REQUEST = Errno(_EMIG_DESTROY_REQUEST) Well, that can't be helped from the glibc side: EMIG_DESTROY_REQUEST etc. really are negative. Please see with go people how that can be handled. Samuel
Bug#891505: glibc: Causes FTBFS of gcc-8 on hurd-i386
On Mon, 2018-02-26 at 23:55 +0100, Samuel Thibault wrote: > Svante Signell, on lun. 26 févr. 2018 11:22:22 +0100, wrote: > > creates a defect gen-sysinfo.go file when libc0.3 >= 2.26-* is installed. > > A lot of cleanup has happened, yes. The question is what actually made > gcc-8 to break. Just looking at the diff of the build logs, there's > > could not determine number of signals ... > To confirm this hypothesis, you could modify your > /usr/include/i386-gnu/bits/signum-generic.h > from > #define _NSIG (__SIGRTMAX + 1) > to > #define _NSIG 32 You mean 33, right? With that change the number of signals are correctly calculated. However, there are still problems with the negative values of _EMIG_* error for Errno() sysinfo.go:3399:35: error: integer constant overflow const EMIG_DESTROY_REQUEST = Errno(_EMIG_DESTROY_REQUEST) ^ sysinfo.go:3413:26: error: integer constant overflow const EMIG_BAD_ID = Errno(_EMIG_BAD_ID) ^ sysinfo.go:3414:31: error: integer constant overflow const EMIG_SERVER_DIED = Errno(_EMIG_SERVER_DIED) ^ sysinfo.go:3425:32: error: integer constant overflow const EMIG_REMOTE_ERROR = Errno(_EMIG_REMOTE_ERROR) ^ sysinfo.go:3429:30: error: integer constant overflow const EMIG_TYPE_ERROR = Errno(_EMIG_TYPE_ERROR) ^ sysinfo.go:3460:28: error: integer constant overflow const EMIG_NO_REPLY = Errno(_EMIG_NO_REPLY) ^ sysinfo.go:3473:34: error: integer constant overflow const EMIG_REPLY_MISMATCH = Errno(_EMIG_REPLY_MISMATCH) ^ sysinfo.go:3475:33: error: integer constant overflow const EMIG_BAD_ARGUMENTS = Errno(_EMIG_BAD_ARGUMENTS) ^ sysinfo.go:3540:29: error: integer constant overflow const EMIG_EXCEPTION = Errno(_EMIG_EXCEPTION) ^ sysinfo.go:3564:35: error: integer constant overflow const EMIG_ARRAY_TOO_LARGE = Errno(_EMIG_ARRAY_TOO_LARGE)
Bug#891505: glibc: Causes FTBFS of gcc-8 on hurd-i386
Svante Signell, on lun. 26 févr. 2018 11:22:22 +0100, wrote: > creates a defect gen-sysinfo.go file when libc0.3 >= 2.26-* is installed. A lot of cleanup has happened, yes. The question is what actually made gcc-8 to break. Just looking at the diff of the build logs, there's could not determine number of signals which seems to come from ./src/libgo/mksigtab.sh, which uses the _NSIG definition, which does have changed indeed, and the script doesn't seem to properly deal with it: it discovers the #define _NSIG (__SIGRTMAX + 1) redirection, but not the #define __SIGRTMAX __SIGRTMIN redirection To confirm this hypothesis, you could modify your /usr/include/i386-gnu/bits/signum-generic.h from #define _NSIG (__SIGRTMAX + 1) to #define _NSIG 32 and check that gcc-8 then builds fine. It then means that ./src/libgo/mksigtab.sh needs to be improved to take into account the abovementioned redirections, like it does between _NSIG and __SIGRTMAX Samuel
Bug#891505: glibc: Causes FTBFS of gcc-8 on hurd-i386
On Mon, 2018-02-26 at 11:52 +0100, Samuel Thibault wrote: > Svante Signell, on lun. 26 févr. 2018 11:49:46 +0100, wrote: > > Ok, here it is. Be prepared that there are duplicates tough, since the > > entries > > are generated in different order. (I've made a partial edit by moving around > > stuff, but that is not complete) > > Rather than moving around by hand, please just process it through > "sort", so we are sure that there is no manual editting error, for > instance > > -// unknowndefine SIGRTMAX (__libc_current_sigrtmax ())// unknowndefine REG_GS > REG_GS > +// unknowndefine REG_GS REG_GS > > looks very suspicious. Attached is a diff file of the sorted entries.--- nOK/gen-sysinfo.go.sorted 2018-02-26 12:03:02.446185024 +0100 +++ OK/gen-sysinfo.go.sorted 2018-02-26 12:03:09.162185200 +0100 @@ -1,4 +1,3 @@ - const _ACCESSPERMS = (_S_IRWXU|_S_IRWXG|_S_IRWXO) const _AF_APPLETALK = _PF_APPLETALK const _AF_CCITT = _PF_CCITT @@ -180,8 +179,6 @@ const __BITS_BYTESWAP_H = 1 const __BITS_CONDITION_ATTR_H = 1 const __BITS_CONDITION_H = 1 -const __BITS_CPU_SET_H = 1 -const __BITS_ERRNO_H = 1 const ___BITS_IOCTLS_H = 1 const __BITS_MUTEX_ATTR_H = 1 const __BITS_MUTEX_H = 1 @@ -190,36 +187,23 @@ const __BITS_POSIX2_LIM_H = 1 const __BITS_POSIX_OPT_H = 1 const __BITS_PTHREAD_H = 1 -const __BITS_PTHREADTYPES_ARCH_H = 1 const __BITS_PTHREADTYPES_H = 1 const __BITS_RWLOCK_ATTR_H = 1 -const __BITS_SCHED_H = 1 const __BITS_SEMAPHORE_H = 1 const __BITS_SIGCONTEXT_H = 1 -const __BITS_SIGEVENT_CONSTS_H = 1 -const __BITS_SIGINFO_CONSTS_H = 1 -const __BITS_SIGNUM_GENERIC_H = 1 -const __BITS_SIGNUM_H = 1 const __BITS_SIGSTACK_H = 1 const __BITS_SIGTHREAD_H = 1 const __BITS_SOCKADDR_H = 1 const ___BITS_SOCKET_H = 1 const __BITS_SPIN_LOCK_H = 1 -const __BITS_SS_FLAGS_H = 1 const __BITS_STAT_H = 1 -const __BITS_STDINT_INTN_H = 1 -const __BITS_STDINT_UINTN_H = 1 const __BITS_SYSMACROS_H = 1 const __BITS_THREAD_ATTR_H = 1 const __BITS_THREAD_SPECIFIC_H = 1 const __BITS_TIME_H = 1 const __BITS_TYPES_H = 1 const __BITS_TYPESIZES_H = 1 -const __BITS_TYPES___LOCALE_T_H = 1 -const __BITS_TYPES_LOCALE_T_H = 1 const __BITS_UINTN_IDENTITY_H = 1 -const __BITS_UIO_EXT_H = 1 -const __BITS_UIO_LIM_H = 1 const __BITS_WCHAR_H = 1 const ___BIT_TYPES_DEFINED__ = 1 const _BRKINT = (1 << 1) @@ -702,7 +686,6 @@ const _ETXTBSY = 1073741850 const _EUSERS = 1073741892 const _EVENP = 0x0080 -const _EWOULDBLOCK = _EAGAIN const _EXDEV = 1073741842 const _EXPR_NEST_MAX = __POSIX2_EXPR_NEST_MAX const _EXTA = 19200 @@ -856,7 +839,6 @@ const _FNOCTTY = _O_NOCTTY const _FNONBLOCK = _O_NONBLOCK const _F_OK = 0 -const ___FORCE_ERROR_T_CODES_SIGNED = -1 const _FPC_DE = 0x0002 const _FPC_DM = _FPC_DE const _FPC_IC = 0x1000 @@ -948,15 +930,11 @@ const ___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1 const ___GCC_IEC_559 = 2 const ___GCC_IEC_559_COMPLEX = 2 -const __GETOPT_CORE_H = 1 -const __GETOPT_POSIX_H = 1 const ___GLIBC__ = 2 const ___glibc_c99_flexarr_available = 1 -const ___GLIBC_MINOR__ = 26 -const ___GLIBC_USE_DEPRECATED_GETS = 0 +const ___GLIBC_MINOR__ = 25 const ___GLIBC_USE_IEC_60559_BFP_EXT = 1 const ___GLIBC_USE_IEC_60559_FUNCS_EXT = 1 -const ___GLIBC_USE_IEC_60559_TYPES_EXT = 1 const ___GLIBC_USE_LIB_EXT2 = 1 const ___GNU__ = 1 const ___GNUC__ = 8 @@ -987,7 +965,6 @@ const _HAVE_FACCESSAT = 1 const _HAVE_FCHMODAT = 1 const _HAVE_FCHOWNAT = 1 -const ___HAVE_GENERIC_SELECTION = 1 const _HAVE_GETIPINFO = 1 const _HAVE_GETXATTR = 1 const _HAVE_INTTYPES_H = 1 @@ -1019,10 +996,14 @@ const _HAVE_SEM_TIMEDWAIT = 1 const _HAVE_SETENV = 1 const _HAVE_SETXATTR = 1 +const ___have_sigevent_t = 1 +const ___have_siginfo_t = 1 +const ___have_sigval_t = 1 const _HAVE_SINL = 1 const _HAVE_STDINT_H = 1 const _HAVE_STDLIB_H = 1 const _HAVE_STRERROR_R = 1 +const __HAVE_STRING_ARCH_mempcpy = 1 const _HAVE_STRING_H = 1 const _HAVE_STRINGS_H = 1 const _HAVE_STRSIGNAL = 1 @@ -1221,7 +1202,6 @@ const _IOC_INOUT = 3 const _IOC_OUT = 1 const _IOC_VOID = 0 -const ___iovec_defined = 1 const _IP_ADD_MEMBERSHIP = 12 const _IPDEFTTL = 64 const _IP_DF = 0x4000 @@ -1583,8 +1563,7 @@ const ___NETINET_IP_H = 1 const __NETINET_TCP_H = 1 const __NET_ROUTE_H = 1 -const ___NGREG = 19 -const _NGREG = ___NGREG +const _NGREG = 19 const _NGROUPS_MAX = 256 const _NI_DGRAM = 16 const _NI_IDN = 32 @@ -1611,8 +1590,8 @@ const _NOHANG = 0x0100 const _NOKERNINFO = (1 << 25) const _NO_RECOVERY = 3 +const __NSIG = 33 const _NSIG = __NSIG -const __NSIG = (___SIGRTMAX + 1) const _NSS_BUFLEN_GROUP = 1024 const _NSS_BUFLEN_PASSWD = 1024 const _NZERO = 20 @@ -2059,7 +2038,6 @@ const _RTMSG_NEWROUTE = 0x21 const _RTMSG_NEWRULE = 0x31 const _RUSAGE_CHILDREN = -1 -const ___rusage_defined = 1 const _RUSAGE_SELF = 0 const _SA_INTERRUPT = 0 const _SA_NOCLDSTOP = 0x0008 @@ -2378,13 +2356,11 @@ const _S_IFREG = ___S_IFREG const ___S_IFSOCK = 014 const _S_IFSOCK = ___S_IFSOCK -const _SIGABRT = 6 const _SIGALRM
Bug#891505: glibc: Causes FTBFS of gcc-8 on hurd-i386
Svante Signell, on lun. 26 févr. 2018 11:49:46 +0100, wrote: > Ok, here it is. Be prepared that there are duplicates tough, since the entries > are generated in different order. (I've made a partial edit by moving around > stuff, but that is not complete) Rather than moving around by hand, please just process it through "sort", so we are sure that there is no manual editting error, for instance -// unknowndefine SIGRTMAX (__libc_current_sigrtmax ())// unknowndefine REG_GS REG_GS +// unknowndefine REG_GS REG_GS looks very suspicious. Samuel
Bug#891505: glibc: Causes FTBFS of gcc-8 on hurd-i386
Hello, Svante Signell, on lun. 26 févr. 2018 11:22:22 +0100, wrote: > Attached is a diff of gen-sysinfo generated with glibc-2.26-6 and glibc-2.25-5 > installed: (edited to show only a subset of the diff) Please send the whole file. There are always evil details in the corners which do matter. Samuel
Bug#891505: glibc: Causes FTBFS of gcc-8 on hurd-i386
Source: glibc Version: 2.26-6 Severity: important Affects: gcc-8 glibc-2.26-* User: debian-h...@lists.debian.org Usertags: hurd Hi, glibc versions > 2.25-6 breaks all builds of gcc-8-*/gccgo on GNU/Hurd due to that -fdump-go-spec is broken. >From the buildd logs of gcc-8: 8-20180218-1 (sid) Maybe-Failed 2018-02-18 19:12:07 8-20180207-2 (sid) Maybe-Failed 2018-02-07 23:22:42 8-20180130-1 (experimental) Maybe-Failed 2018-01-30 22:09:03 8-20180123-1 (experimental) Maybe-Failed 2018-01-24 08:22:30 8-20180110-1 (experimental) Maybe-Failed 2018-01-13 12:14:53 Maybe-Failed 2018-01-13 02:51:42 8-20171229-1 (experimental) Maybe-Successful 2018-01-02 03:39:06 Toolchain package versions: 2018-01-24 binutils_2.29.1-13 dpkg-dev_1.19.0.4 g++-7_7.2.0-19 gcc-7_7.2.0-19 gnumach- dev_2:1.8+git20171101-1 hurd-dev_1:0.9.git20180108-1 libc0.3-dev_2.26-3 libstdc++-7-dev_7.2.0-19 libstdc++6_7.2.0-19 Toolchain package versions: 2018-01-02 binutils_2.29.1-12 dpkg-dev_1.19.0.4 g++-7_7.2.0-18 gcc-7_7.2.0-18 gnumach- dev_2:1.8+git20171101-1 hurd-dev_1:0.9.git20171119-3 libc0.3-dev_2.25-6 libstdc++-7-dev_7.2.0-18 libstdc++6_7.2.0-18 The packages in the build environment was downgraded for the failing build and the only package affecting the build was the libc version. On gcc-8-8-20171229 the command: /home/srs/DEBs/gcc-8/gcc-8-8-20171229/build/./gcc/xgcc -B/home/srs/DEBs/gcc- 8/gcc-8-8-20171229/build/./gcc/ -B/usr/i686-gnu/bin/ -B/usr/i686-gnu/lib/ -isystem /usr/i686-gnu/include -isystem /usr/i686-gnu/sys-include -isystem /home/srs/DEBs/gcc-8/gcc-8-8-20171229/build/sys-include-DHAVE_CONFIG_H -I. -I../../../src/libgo -I ../../../src/libgo/runtime -I../../../src/libgo/../libffi/include -I../libffi/include -pthread -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -fdump-go-spec=tmp-gen-sysinfo.go -std=gnu99 -S -o sysinfo.s ../../../src/libgo/sysinfo.c rm -f sysinfo.s /bin/bash ../../../src/libgo/mvifdiff.sh tmp-gen-sysinfo.go gen-sysinfo.go creates a defect gen-sysinfo.go file when libc0.3 >= 2.26-* is installed. Attached is a diff of gen-sysinfo generated with glibc-2.26-6 and glibc-2.25-5 installed: (edited to show only a subset of the diff) Thanks!--- nOK/gen-sysinfo.go 2018-02-26 10:39:57.970054114 +0100 +++ OK/gen-sysinfo.go 2018-02-26 01:07:07.0 +0100 @@ -137,3 +137,4 @@ // unknowndefine DT_WHT DT_WHT // unknowndefine SSIZE_MAX LONG_MAX // unknowndefine NULL ((void *)0) +// unknowndefine EPERM _HURD_ERRNO (1) ... +// unknowndefine ENOTRECOVERABLE _HURD_ERRNO (121) // unknowndefine errno (*__errno_location ()) // unknowndefine O_READ O_RDONLY // unknowndefine O_WRITE O_WRONLY @@ -156,6 +259,7 @@ // unknowndefine SIG_DFL ((__sighandler_t) 0) // unknowndefine SIG_IGN ((__sighandler_t) 1) // unknowndefine SIG_HOLD ((__sighandler_t) 2) +// unknowndefine SIGABRT SIGIOT // unknowndefine SI_ASYNCIO SI_ASYNCIO // unknowndefine SI_MESGQ SI_MESGQ // unknowndefine SI_TIMER SI_TIMER @@ -196,6 +300,7 @@ // unknowndefine POLL_ERR POLL_ERR // unknowndefine POLL_PRI POLL_PRI // unknowndefine POLL_HUP POLL_HUP +// unknowndefine SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE / sizeof (int)) - 3) // unknowndefine SIGEV_SIGNAL SIGEV_SIGNAL // unknowndefine SIGEV_NONE SIGEV_NONE // unknowndefine SIGEV_THREAD SIGEV_THREAD @@ -211,8 +316,7 @@ // unknowndefine NULL ((void *)0) // unknowndefine SS_ONSTACK SS_ONSTACK // unknowndefine SS_DISABLE SS_DISABLE -// unknowndefine SIGRTMIN (__libc_current_sigrtmin ()) -// unknowndefine SIGRTMAX (__libc_current_sigrtmax ())// unknowndefine REG_GS REG_GS +// unknowndefine REG_GS REG_GS // unknowndefine REG_FS REG_FS // unknowndefine REG_ES REG_ES // unknowndefine REG_DS REG_DS