bug-glibc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Two problems...


From: Steve Watt
Subject: Two problems...
Date: Fri, 22 Aug 2003 13:28:24 -0700

I tried to submit this via glibcbug, but got a weird failure, looks like
maybe address@hidden is broke?

Weird failure quoth:

} X-Failed-Recipients: address@hidden
} From: Mail Delivery System <address@hidden>
} To: address@hidden
} Subject: Mail delivery failed: returning message to sender
} Message-Id: <address@hidden>
} Date: Fri, 22 Aug 2003 13:38:03 -0400
} X-OriginalArrivalTime: 22 Aug 2003 17:40:57.0799 (UTC) 
FILETIME=[8B6C4570:01C368D4]
} 
} This message was created automatically by mail delivery software.
} 
} A message that you sent could not be delivered to one or more of its
} recipients. This is a permanent error. The following address(es) failed:
} 
}  pipe to | /usr/lib/gnats/queue-pr -q
}    generated by address@hidden
}    local delivery failed

And my real problem, with proposed fix, looking for some review.

Subject: recent CVS ARM build broken (by recent change, it seems)

>Submitter-Id:  net
>Originator:    Steve Watt
>Organization:
  Steve Watt       KD6GGD  PP-ASEL-IA       Email at  home: address@hidden
  Chelsio Communications   http://www.chelsio.com/    work: address@hidden
  510 N. Pastoria Ave                                Voice: +1 408 962 3627
  Sunnyvale, CA, USA, 94085                            Fax: +1 408 730 2580
>
>Confidential:  no
>Synopsis:      PSEUDO_ERRVAL not defined in any ARM sysdep headers
>Severity:      critical
>Priority:      high
>Category:      libc
>Class:         sw-bug
>Release:       libc-2.3.2
>Environment:
        
Cross compiling from Linux (RH 7.1) for ARM Linux
Host type: arm-unknown-linux-gnu


Addons: linuxthreads
Build CFLAGS: -g -O2
Build CC: arm-linux-gcc -mbig-endian
Compiler version: 3.4 20030821 (experimental)

Symbol versioning: yes
Build static: yes
Build shared: yes
Build pic-default: no
Build profile: yes
Build omitfp: no
Build bounded: no
Build static-nss: no

>Description:

Build produced the following:

[ snip ]
.././scripts/mkinstalldirs /users/steve/linux/tools/build.glibc/posix
(echo '#include <sysdep.h>'; \
 echo 'PSEUDO_ERRVAL (posix_madvise, madvise, 3)'; \
 echo ' ret_ERRVAL'; \
 echo 'PSEUDO_END_ERRVAL(posix_madvise)'; \
 echo 'libc_hidden_def (posix_madvise)'; \
) | arm-linux-gcc -mbig-endian -c -I../include -I. 
-I/users/steve/linux/tools/build.glibc/posix -I.. -I../libio 
-I/users/steve/linux/tools/build.glibc -I../sysdeps/arm/elf 
-I../linuxthreads/sysdeps/unix/sysv/linux/arm 
-I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread 
-I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv 
-I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/arm 
-I../sysdeps/unix/sysv/linux/arm -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu 
-I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet 
-I../sysdeps/unix/sysv -I../sysdeps/unix/arm -I../sysdeps/unix 
-I../sysdeps/posix -I../sysdeps/arm/fpu -I../sysdeps/arm 
-I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 
-I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf 
-I../sysdeps/generic -nostdinc -isystem 
/usr/local/arm-tools/lib/gcc/arm-linux/3.4/include -isystem 
/usr/local/arm-tools/arm-linux/include -D_LIBC_REENTRANT -include 
../include/lib!
 c-symbols.h -DASSEMBLER -x assembler-with-cpp -o 
/users/steve/linux/tools/build.glibc/posix/posix_madvise.o -
<stdin>: Assembler messages:
<stdin>:2: Error: bad instruction `pseudo_errval (posix_madvise,madvise,3)'
<stdin>:3: Error: bad instruction `ret_errval'
make[2]: *** [/users/steve/linux/tools/build.glibc/posix/posix_madvise.o] Error 
1
make[2]: Leaving directory `/users/steve/gnu-toolchain/glibc/libc/posix'
make[1]: *** [posix/subdir_lib] Error 2
make[1]: Leaving directory `/users/steve/gnu-toolchain/glibc/libc'
make: *** [all] Error 2

I don't see any definition for PSEUDO_ERRVAL in the ARM sysdep headers.  It
looks like the posix_madvise definition was changed on 8/15 by drepper,
and jakub filled in most of the remaining platforms, but missed ARM.


>How-To-Repeat:

Check out a current version (22 Aug ~0000Z) of glibc, try to build it
for arm-linux.

>Fix:

Figure out what the correct definition for PSEUDO_ERRVAL is on ARM, and
supply it. ;)

I think it needs to look like so:


Index: sysdep.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/sysdep.h,v
retrieving revision 1.24
diff -u -r1.24 sysdep.h
--- sysdep.h    27 Mar 2003 02:45:49 -0000      1.24
+++ sysdep.h    22 Aug 2003 05:43:03 -0000
@@ -64,6 +64,23 @@
   SYSCALL_ERROR_HANDLER                                                        
      \
   END (name)
 
+#undef PSEUDO_ERRVAL
+#define        PSEUDO_ERRVAL(name, syscall_name, args)                         
      \
+  .text;                                                                     \
+  ENTRY (name);                                                                
      \
+    DO_CALL (syscall_name, args);                                             \
+    rsb        r0, r0, #0
+
+#define PSEUDO_RET_ERRVAL                                                    \
+    RETINSTR(mov, pc, lr);
+
+#undef ret_ERRVAL
+#define ret_ERRVAL PSEUDO_RET_ERRVAL
+
+#undef PSEUDO_END_NOERRNO
+#define        PSEUDO_END_NOERRNO(name)                                        
      \
+  END (name)
+
 #undef PSEUDO_NOERRNO
 #define        PSEUDO_NOERRNO(name, syscall_name, args)                        
      \
   .text;                                                                     \



-- 
Steve Watt       KD6GGD  PP-ASEL-IA       Email at  home: address@hidden
Chelsio Communications   http://www.chelsio.com/    work: address@hidden
510 N. Pastoria Ave                                Voice: +1 408 962 3627
Sunnyvale, CA, USA, 94085                            Fax: +1 408 730 2580




reply via email to

[Prev in Thread] Current Thread [Next in Thread]