summary refs log tree commit diff stats
path: root/linux-user
diff options
context:
space:
mode:
Diffstat (limited to 'linux-user')
-rw-r--r--linux-user/elfload.c1
-rw-r--r--linux-user/ppc64/syscall.h20
-rw-r--r--linux-user/qemu.h1
3 files changed, 12 insertions, 10 deletions
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index b87119e934..2a43338125 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -1315,6 +1315,7 @@ int load_elf_binary(struct linux_binprm * bprm, struct target_pt_regs * regs,
 		    interp_load_addr,
 		    (interpreter_type == INTERPRETER_AOUT ? 0 : 1),
 		    info);
+    info->load_addr = reloc_func_desc;
     info->start_brk = info->brk = elf_brk;
     info->end_code = end_code;
     info->start_code = start_code;
diff --git a/linux-user/ppc64/syscall.h b/linux-user/ppc64/syscall.h
index 6920616410..c47e58a95f 100644
--- a/linux-user/ppc64/syscall.h
+++ b/linux-user/ppc64/syscall.h
@@ -65,18 +65,21 @@ struct target_revectored_struct {
 #define TARGET_SHMGET          23
 #define TARGET_SHMCTL          24
 
+#if 0 // To make it compile, even if the definition in syscall.c is bugged
 struct target_msgbuf {
 	int mtype;
 	char mtext[1];
 };
+#endif
 
 struct target_ipc_kludge {
 	unsigned int	msgp;	/* Really (struct msgbuf *) */
 	int msgtyp;
 };
 
+#if 0 // To make it compile, even if the definition in syscall.c is bugged
 struct target_ipc_perm {
-	int	key;
+	int	__key;
 	unsigned short	uid;
 	unsigned short	gid;
 	unsigned short	cuid;
@@ -84,7 +87,9 @@ struct target_ipc_perm {
 	unsigned short	mode;
 	unsigned short	seq;
 };
+#endif
 
+#if 0 // To make it compile, even if the definition in syscall.c is bugged
 struct target_msqid_ds {
 	struct target_ipc_perm	msg_perm;
 	unsigned int		msg_first;	/* really struct target_msg* */
@@ -100,7 +105,9 @@ struct target_msqid_ds {
 	unsigned short		msg_lspid;
 	unsigned short		msg_lrpid;
 };
+#endif
 
+#if 0 // To make it compile, even if the definition in syscall.c is bugged
 struct target_shmid_ds {
 	struct target_ipc_perm	shm_perm;
 	int			shm_segsz;
@@ -114,17 +121,10 @@ struct target_shmid_ds {
 	unsigned long		*shm_pages;
 	void 			*attaches;	/* really struct shm_desc * */
 };
+#endif
 
 #define TARGET_IPC_RMID	0
 #define TARGET_IPC_SET	1
 #define TARGET_IPC_STAT	2
 
-union target_semun {
-    int val;
-    unsigned int buf;	/* really struct semid_ds * */
-    unsigned int array; /* really unsigned short * */
-    unsigned int __buf;	/* really struct seminfo * */
-    unsigned int __pad;	/* really void* */
-};
-
-#define UNAME_MACHINE "ppc"
+#define UNAME_MACHINE "ppc64"
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 8c03ad1902..4b857f3d14 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -16,6 +16,7 @@
  * task_struct fields in the kernel
  */
 struct image_info {
+        target_ulong    load_addr;
 	unsigned long	start_code;
 	unsigned long	end_code;
         unsigned long   start_data;