Bug 986031 - binutils-2.23.88.0.1-3.fc20 can't build glibc on s390
binutils-2.23.88.0.1-3.fc20 can't build glibc on s390
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: binutils (Show other bugs)
rawhide
s390x Unspecified
urgent Severity urgent
: ---
: ---
Assigned To: Nick Clifton
Fedora Extras Quality Assurance
:
Depends On:
Blocks: ZedoraTracker
  Show dependency treegraph
 
Reported: 2013-07-18 15:46 EDT by Dan Horák
Modified: 2013-07-23 10:48 EDT (History)
2 users (show)

See Also:
Fixed In Version: binutils-2.23.88.0.1-8.fc20
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-07-23 10:48:48 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Dan Horák 2013-07-18 15:46:18 EDT
binutils-2.23.88.0.1-3.fc20 can't build glibc on s390, it fails with

...
gcc ../sysdeps/s390/s390-32/multiarch/memcmp.S -c    -I../include -I/builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string -I/builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux -I../nptl/sysdeps/unix/sysv/linux/s390/s390-32 -I../sysdeps/unix/sysv/linux/s390/s390-32/nptl -I../sysdeps/unix/sysv/linux/s390/s390-32 -I../sysdeps/unix/sysv/linux/s390/fpu -I../sysdeps/s390/fpu -I../nptl/sysdeps/unix/sysv/linux/s390 -I../rtkaio/sysdeps/unix/sysv/linux/s390 -I../sysdeps/unix/sysv/linux/s390 -I../sysdeps/ieee754/ldbl-64-128 -I../sysdeps/ieee754/ldbl-opt -I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../rtkaio/sysdeps/pthread -I../sysdeps/pthread -I../rtkaio/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -I../rtkaio/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../rtkaio/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/s390/s390-32/multiarch -I../sysdeps/s390/s390-32 -I../sysdeps/wordsize-32 -I../nptl/sysdeps/s390 -I../sysdeps/s390 -I../sysdeps/ieee754/ldbl-128 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic -I../ports -I../nptl -I../rtkaio  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/s390-redhat-linux/4.8.0/include -isystem /usr/include  -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -DASSEMBLER  -g -Wa,--noexecstack   -o /builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string/memcmp.o -MD -MP -MF /builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string/memcmp.o.dt -MT /builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string/memcmp.o 
In file included from ../sysdeps/s390/s390-32/multiarch/../memcmp.S:20:0,
                 from ../sysdeps/s390/s390-32/multiarch/memcmp.S:97:
../sysdeps/s390/s390-32/multiarch/../sysdep.h:68:0: warning: "PSEUDO" redefined [enabled by default]
 #define PSEUDO(name, syscall_name, args) \
 ^
In file included from ../sysdeps/s390/s390-32/multiarch/memcmp.S:20:0:
../sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h:56:0: note: this is the location of the previous definition
 #define PSEUDO(name, syscall_name, args)          \
 ^
../sysdeps/s390/s390-32/multiarch/memcmp.S: Assembler messages:
../sysdeps/s390/s390-32/multiarch/memcmp.S:34: Error: unknown pseudo-op: `.machinemode'
../sysdeps/s390/s390-32/multiarch/memcmp.S:38: Error: Unrecognized opcode: `srlk'
../sysdeps/s390/s390-32/multiarch/memcmp.S:42: Error: Unrecognized opcode: `exrl'
../sysdeps/s390/s390-32/multiarch/memcmp.S:54: Error: Unrecognized opcode: `pfd'
../sysdeps/s390/s390-32/multiarch/memcmp.S:55: Error: Unrecognized opcode: `pfd'
../sysdeps/s390/s390-32/multiarch/memcmp.S:68: Error: unknown pseudo-op: `.machinemode'
../sysdeps/s390/s390-32/multiarch/memcmp.S:74: Error: Unrecognized opcode: `cijlh'
../sysdeps/s390/s390-32/multiarch/memcmp.S:76: Error: Unrecognized opcode: `exrl'
../sysdeps/s390/s390-32/multiarch/memcmp.S:83: Error: Unrecognized opcode: `pfd'
../sysdeps/s390/s390-32/multiarch/memcmp.S:84: Error: Unrecognized opcode: `pfd'
gcc memmove.c -c -std=gnu99 -fgnu89-inline  -DNDEBUG -O3 -Wall -Winline -Wwrite-strings -fasynchronous-unwind-tables -fmerge-all-constants -frounding-math -g -Wstrict-prototypes -mlong-double-128  -fno-tree-loop-distribute-patterns       -I../include -I/builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string -I/builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux -I../nptl/sysdeps/unix/sysv/linux/s390/s390-32 -I../sysdeps/unix/sysv/linux/s390/s390-32/nptl -I../sysdeps/unix/sysv/linux/s390/s390-32 -I../sysdeps/unix/sysv/linux/s390/fpu -I../sysdeps/s390/fpu -I../nptl/sysdeps/unix/sysv/linux/s390 -I../rtkaio/sysdeps/unix/sysv/linux/s390 -I../sysdeps/unix/sysv/linux/s390 -I../sysdeps/ieee754/ldbl-64-128 -I../sysdeps/ieee754/ldbl-opt -I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../rtkaio/sysdeps/pthread -I../sysdeps/pthread -I../rtkaio/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -I../rtkaio/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../rtkaio/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/s390/s390-32/multiarch -I../sysdeps/s390/s390-32 -I../sysdeps/wordsize-32 -I../nptl/sysdeps/s390 -I../sysdeps/s390 -I../sysdeps/ieee754/ldbl-128 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic -I../ports -I../nptl -I../rtkaio  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/s390-redhat-linux/4.8.0/include -isystem /usr/include  -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -o /builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string/memmove.o -MD -MP -MF /builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string/memmove.o.dt -MT /builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string/memmove.o
make[2]: *** [/builddir/build/BUILD/glibc-2.17-c758a686/build-s390-redhat-linux/string/memcmp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/builddir/build/BUILD/glibc-2.17-c758a686/string'
make[1]: Leaving directory `/builddir/build/BUILD/glibc-2.17-c758a686'
make[1]: *** [string/subdir_lib] Error 2
make: *** [all] Error 2

I guess it's because the FSF binutils is missing the required functionality, previous build of glibc with binutils-2.23.52.0.1-10.fc20 (which is based on the "Linux fork") was successful.

Version-Release number of selected component (if applicable):
binutils-2.23.88.0.1-3.fc20
Comment 1 Dan Horák 2013-07-18 15:55:22 EDT
And looking into gas/config/tc-s390.c confirms the idea, the machinemode pseudo-op is missing in the FSF version.
Comment 2 Nick Clifton 2013-07-19 08:54:16 EDT
The new binutils-2.23.88.0.1-8 release (once it is koji is back up and it can be built) has support for the machinemode pseudo-op.

Cheers
  Nick
Comment 3 Dan Horák 2013-07-19 11:30:04 EDT
Thanks for providing the fix promptly.
Comment 4 Dan Horák 2013-07-23 10:48:48 EDT
Hope you won't mind that I've sent the build to koji.

Note You need to log in before you can comment on or make changes to this bug.