Bug 986031 - binutils-2.23.88.0.1-3.fc20 can't build glibc on s390
Summary: binutils-2.23.88.0.1-3.fc20 can't build glibc on s390
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: binutils
Version: rawhide
Hardware: s390x
OS: Unspecified
urgent
urgent
Target Milestone: ---
Assignee: Nick Clifton
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: ZedoraTracker
TreeView+ depends on / blocked
 
Reported: 2013-07-18 19:46 UTC by Dan Horák
Modified: 2013-07-23 14:48 UTC (History)
2 users (show)

Fixed In Version: binutils-2.23.88.0.1-8.fc20
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-07-23 14:48:48 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Dan Horák 2013-07-18 19:46:18 UTC
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 19:55:22 UTC
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 12:54:16 UTC
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 15:30:04 UTC
Thanks for providing the fix promptly.

Comment 4 Dan Horák 2013-07-23 14:48:48 UTC
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.