This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ports/18787] New: sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: error: canât find a register in class âR1_REGSâ while reloading âasmâ


https://sourceware.org/bugzilla/show_bug.cgi?id=18787

            Bug ID: 18787
           Summary: sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6:
                    error: canât find a register in class âR1_REGSâ while
                    reloading âasmâ
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ports
          Assignee: unassigned at sourceware dot org
          Reporter: danglin at gcc dot gnu.org
                CC: carlos at redhat dot com, roland at gnu dot org
  Target Milestone: ---
              Host: hppa-unknown-linux-gnu
            Target: hppa-unknown-linux-gnu
             Build: hppa-unknown-linux-gnu

hppa-linux-gnu-gcc-4.8 gethstbyad.c -c -std=gnu99 -fgnu89-inline  -O2 -Wall
-Wer
ror -Wno-error=undef -Wundef -Wwrite-strings -fmerge-all-constants
-frounding-ma
th -g -Wstrict-prototypes   -fPIC -fexceptions  -ftls-model=initial-exec     
-I
../include -I/home/dave/gnu/glibc/objdir1/inet  -I/home/dave/gnu/glibc/objdir1  
-I../sysdeps/unix/sysv/linux/hppa  -I../sysdeps/hppa/nptl 
-I../sysdeps/unix/sys
v/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl 
-I../sysdeps/pt
hread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv 
-I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/hppa/hppa1.1 
-I../sysdeps/wordsize
-32  -I../sysdeps/ieee754/flt-32  -I../sysdeps/ieee754/dbl-64 
-I../sysdeps/hppa
/fpu  -I../sysdeps/hppa  -I../sysdeps/ieee754  -I../sysdeps/generic  -I..
-I../l
ibio -I. -nostdinc -isystem /usr/lib/gcc/hppa-linux-gnu/4.8/include -isystem
/us
r/lib/gcc/hppa-linux-gnu/4.8/include-fixed -isystem /usr/include 
-D_LIBC_REENTR
ANT -include /home/dave/gnu/glibc/objdir1/libc-modules.h -DMODULE_NAME=libc
-inc
lude ../include/libc-symbols.h  -DPIC -DSHARED     -o
/home/dave/gnu/glibc/objdir1/inet/gethstbyad.os -MD -MP -MF
/home/dave/gnu/glibc/objdir1/inet/gethstbyad.o
s.dt -MT /home/dave/gnu/glibc/objdir1/inet/gethstbyad.os
In file included from ../include/sys/cdefs.h:3:0,
                 from ../include/features.h:365,
                 from ../resolv/netdb.h:25,
                 from ../include/netdb.h:2,
                 from gethstbyad.c:19:
../nss/getXXbyYY.c: In function âgethostbyaddrâ:
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: error: canât find a
register in class âR1_REGSâ while reloading âasmâ
      asm volatile(       \
      ^
../misc/sys/cdefs.h:385:52: note: in definition of macro â__glibc_unlikelyâ
 # define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
                                                    ^
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:100:12: note: in expansion of
macro âatomic_compare_and_exchange_val_acqâ
      ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval); \
            ^
../sysdeps/nptl/lowlevellock.h:94:11: note: in expansion of macro
âatomic_compare_and_exchange_bool_acqâ
          (atomic_compare_and_exchange_bool_acq (__futex, 1, 0)))        \
           ^
../sysdeps/nptl/lowlevellock.h:103:3: note: in expansion of macro â__lll_lockâ
   __lll_lock (&(futex), private)
   ^
../sysdeps/nptl/bits/libc-lockP.h:176:6: note: in expansion of macro âlll_lockâ
   ({ lll_lock (NAME, LLL_PRIVATE); 0; })
      ^
../nss/getXXbyYY.c:97:3: note: in expansion of macro â__libc_lock_lockâ
   __libc_lock_lock (lock);
   ^
In file included from ../include/atomic.h:50:0,
                 from ../sysdeps/nptl/lowlevellock.h:22,
                 from ../nptl/descr.h:30,
                 from ../sysdeps/hppa/nptl/tls.h:57,
                 from ../include/link.h:45,
                 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:
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: error: canât find a
register in class âR1_REGSâ while reloading âasmâ
      asm volatile(       \
      ^
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:100: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)
                                             ^
../sysdeps/nptl/lowlevellock.h:199:21: note: in expansion of macro
âatomic_exchange_relâ
      int __oldval = atomic_exchange_rel (__futex, 0);   \
                     ^
../sysdeps/nptl/lowlevellock.h:204:3: note: in expansion of macro
â__lll_unlockâ
   __lll_unlock (&(futex), private)
   ^
../sysdeps/nptl/bits/libc-lockP.h:210: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);
   ^
In file included from ../include/sys/cdefs.h:3:0,
                 from ../include/features.h:365,
                 from ../resolv/netdb.h:25,
                 from ../include/netdb.h:2,
                 from gethstbyad.c:19:
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: error: âasmâ operand has
impossible constraints
      asm volatile(       \
      ^
../misc/sys/cdefs.h:385:52: note: in definition of macro â__glibc_unlikelyâ
 # define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
                                                    ^
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:100:12: note: in expansion of
macro âatomic_compare_and_exchange_val_acqâ
      ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval); \
            ^
../sysdeps/nptl/lowlevellock.h:94:11: note: in expansion of macro
âatomic_compare_and_exchange_bool_acqâ
          (atomic_compare_and_exchange_bool_acq (__futex, 1, 0)))        \
           ^
../sysdeps/nptl/lowlevellock.h:103:3: note: in expansion of macro â__lll_lockâ
   __lll_lock (&(futex), private)
   ^
../sysdeps/nptl/bits/libc-lockP.h:176:6: note: in expansion of macro âlll_lockâ
   ({ lll_lock (NAME, LLL_PRIVATE); 0; })
      ^
../nss/getXXbyYY.c:97:3: note: in expansion of macro â__libc_lock_lockâ
   __libc_lock_lock (lock);
   ^
In file included from ../include/atomic.h:50:0,
                 from ../sysdeps/nptl/lowlevellock.h:22,
                 from ../nptl/descr.h:30,
                 from ../sysdeps/hppa/nptl/tls.h:57,
                 from ../include/link.h:45,
                 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:
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: error: âasmâ operand has
impossible constraints
      asm volatile(       \
      ^
../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:100: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)
                                             ^
../sysdeps/nptl/lowlevellock.h:199:21: note: in expansion of macro
âatomic_exchange_relâ
      int __oldval = atomic_exchange_rel (__futex, 0);   \
                     ^
../sysdeps/nptl/lowlevellock.h:204:3: note: in expansion of macro
â__lll_unlockâ
   __lll_unlock (&(futex), private)
   ^
../sysdeps/nptl/bits/libc-lockP.h:210: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);
   ^
../o-iterator.mk:9: recipe for target
'/home/dave/gnu/glibc/objdir1/inet/gethstbyad.os' failed
make[2]: *** [/home/dave/gnu/glibc/objdir1/inet/gethstbyad.os] Error 1
make[2]: Leaving directory '/home/dave/gnu/glibc/glibc/inet'
Makefile:213: recipe for target 'inet/subdir_lib' failed
make[1]: *** [inet/subdir_lib] Error 2
make[1]: Leaving directory '/home/dave/gnu/glibc/glibc'
Makefile:9: recipe for target 'all' failed
make: *** [all] Error 2

The asm clobbers register %r1.  When generating PIC code, register %r1
is needed to reload an operand from static memory.  The operand needs to
be copied first to a register as is done on arm.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]