about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/aix
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/aix')
-rw-r--r--sysdeps/unix/sysv/aix/Makefile16
-rw-r--r--sysdeps/unix/sysv/aix/bits/types.h6
2 files changed, 19 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/aix/Makefile b/sysdeps/unix/sysv/aix/Makefile
index 19ec885473..3fcf4bb3e9 100644
--- a/sysdeps/unix/sysv/aix/Makefile
+++ b/sysdeps/unix/sysv/aix/Makefile
@@ -2,6 +2,21 @@
 # This is a hack until the import/export stuff is worked out.
 +postctor += /lib/syscalls.exp
 
+ifeq ($(subdir),csu)
+
+sysdep_routines += aix-syscalls
+
+#
+# The foo.c is a workaround for the linker complaining about no input files.
+$(objpfx)aix-syscalls.o : /lib/syscalls.exp
+	echo "static int a;" > foo.c
+	$(CC) -c foo.c
+	ld -bM:SRE -bnoentry -bI:/lib/syscalls.exp -bE:/lib/syscalls.exp foo.o -o $@
+	rm foo.c foo.o
+
+
+endif 
+
 ifeq ($(subdir),misc)
 sysdep_routines  += dl-error dl-support dl-libc dl-open dl-sym \
 		    dl-close dl-addr uitrunc
@@ -24,3 +39,4 @@ inhibit-glue = yes
 ifeq ($(subdir),timezone)
 CPPFLAGS-zic.c = -Dunix
 endif
+
diff --git a/sysdeps/unix/sysv/aix/bits/types.h b/sysdeps/unix/sysv/aix/bits/types.h
index 4beff41891..12c3be730e 100644
--- a/sysdeps/unix/sysv/aix/bits/types.h
+++ b/sysdeps/unix/sysv/aix/bits/types.h
@@ -71,7 +71,7 @@ typedef int __pid_t;			/* Type of process identifications.  */
 typedef long int __ssize_t;		/* Type of a byte count, or error.  */
 typedef __u_long __rlim_t;		/* Type of resource counts.  */
 typedef __u_quad_t __rlim64_t;		/* Type of resource counts (LFS).  */
-typedef __u_long __id_t;		/* General type for ID.  */
+typedef unsigned int __id_t;		/* General type for ID.  */
 
 typedef struct
   {
@@ -82,7 +82,7 @@ typedef struct
 typedef long int __daddr_t;		/* The type of a disk address.  */
 typedef char *__caddr_t;
 typedef long int __time_t;
-typedef __u_long __useconds_t;
+typedef unsigned int __useconds_t;
 typedef int __suseconds_t;
 typedef long int __swblk_t;		/* Type of a swap block maybe?  */
 
@@ -128,7 +128,7 @@ typedef int __t_scalar_t;
 typedef unsigned int __t_uscalar_t;
 
 /* Duplicates info from stdint.h but this is used in unistd.h.  */
-typedef int __intptr_t;
+typedef signed long __intptr_t;
 
 /* Duplicate info from sys/socket.h.  */
 typedef unsigned int __socklen_t;