http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60925
Bug ID: 60925 Summary: [4.9 Regression] hppa: can't find a register in class 'R1_REGS' while reloading 'asm' Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: aaro.koskinen at iki dot fi Build failure when compiling GLIBC 2.19 with GCC 4.9.0 on PA-RISC: hppa-linux-gnu-gcc gethstbyad.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wstrict-prototypes -fPIC -fexceptions -I../include -I/home/aaro/los/work/parisc/glibc-2.19-build/default/inet -I/home/aaro/los/work/parisc/glibc-2.19-build/default -I../ports/sysdeps/unix/sysv/linux/hppa/nptl -I../ports/sysdeps/unix/sysv/linux/hppa -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../ports/sysdeps/hppa/hppa1.1 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../ports/sysdeps/hppa/fpu -I../ports/sysdeps/hppa/nptl -I../ports/sysdeps/hppa -I../sysdeps/ieee754 -I../sysdeps/generic -I../nptl -I../ports -I.. -I../libio -I. -nostdinc -isystem /home/aaro/los/work/parisc/toolchain/lib/gcc/hppa-linux-gnu/4.9.0/include -isystem /home/aaro/los/work/parisc/toolchain/lib/gcc/hppa-linux-gnu/4.9.0/include-fixed -isystem /home/aaro/los/work/parisc/toolchain/glibc/hppa-linux-gnu/usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DSHARED -o /home/aaro/los/work/parisc/glibc-2.19-build/default/inet/gethstbyad.os -MD -MP -MF /home/aaro/los/work/parisc/glibc-2.19-build/default/inet/gethstbyad.os.dt -MT /home/aaro/los/work/parisc/glibc-2.19-build/default/inet/gethstbyad.os In file included from ../include/atomic.h:50:0, from ../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:25, from ../nptl/descr.h:30, from ../ports/sysdeps/hppa/nptl/tls.h:56, from ../include/link.h:44, from ../include/dlfcn.h:4, from ../nss/nsswitch.h:28, from ../include/nsswitch.h:1, from ../inet/netgroup.h:22, from ../include/netdb.h:193, from gethstbyad.c:19: ../nss/getXXbyYY.c: In function 'gethostbyaddr': ../ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h:68:6: error: can't find a register in class 'R1_REGS' while reloading 'asm' asm volatile( \ ^ ../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:219:13: note: in expansion of macro 'atomic_compare_and_exchange_val_acq' int val = atomic_compare_and_exchange_val_acq (futex, 1, 0); ^ ../ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h:68:6: error: can't find a register in class 'R1_REGS' while reloading 'asm' asm volatile( \ ^ ../ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h:97:12: note: in expansion of macro 'atomic_compare_and_exchange_val_acq' ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval); \ ^ ../include/atomic.h:189:7: note: in expansion of macro 'atomic_compare_and_exchange_bool_acq' (atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \ ^ ../include/atomic.h:196:45: note: in expansion of macro 'atomic_exchange_acq' # define atomic_exchange_rel(mem, newvalue) atomic_exchange_acq (mem, newvalue) ^ ../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:293:16: note: in expansion of macro 'atomic_exchange_rel' ({ int val = atomic_exchange_rel (futex, 0); \ ^ ../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:297:36: note: in expansion of macro '__lll_unlock' #define lll_unlock(futex, private) __lll_unlock(&(futex), private) ^ ../nptl/sysdeps/pthread/bits/libc-lockP.h:203:3: note: in expansion of macro 'lll_unlock' lll_unlock (NAME, LLL_PRIVATE) ^ ../nss/getXXbyYY.c:144:3: note: in expansion of macro '__libc_lock_unlock' __libc_lock_unlock (lock); ^ ../ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h:68:6: error: 'asm' operand has impossible constraints asm volatile( \ ^ ../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:219:13: note: in expansion of macro 'atomic_compare_and_exchange_val_acq' int val = atomic_compare_and_exchange_val_acq (futex, 1, 0); ^ ../ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h:68:6: error: 'asm' operand has impossible constraints asm volatile( \ ^ ../ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h:97:12: note: in expansion of macro 'atomic_compare_and_exchange_val_acq' ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval); \ ^ ../include/atomic.h:189:7: note: in expansion of macro 'atomic_compare_and_exchange_bool_acq' (atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \ ^ ../include/atomic.h:196:45: note: in expansion of macro 'atomic_exchange_acq' # define atomic_exchange_rel(mem, newvalue) atomic_exchange_acq (mem, newvalue) ^ ../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:293:16: note: in expansion of macro 'atomic_exchange_rel' ({ int val = atomic_exchange_rel (futex, 0); \ ^ ../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:297:36: note: in expansion of macro '__lll_unlock' #define lll_unlock(futex, private) __lll_unlock(&(futex), private) ^ ../nptl/sysdeps/pthread/bits/libc-lockP.h:203:3: note: in expansion of macro 'lll_unlock' lll_unlock (NAME, LLL_PRIVATE) ^ ../nss/getXXbyYY.c:144:3: note: in expansion of macro '__libc_lock_unlock' __libc_lock_unlock (lock); ^ make[2]: *** [/home/aaro/los/work/parisc/glibc-2.19-build/default/inet/gethstbyad.os] Error 1 make[2]: Leaving directory `/home/aaro/los/work/shared/glibc-2.19/inet' make[1]: *** [inet/subdir_lib] Error 2 make[1]: Leaving directory `/home/aaro/los/work/shared/glibc-2.19' make: *** [all] Error 2