svn commit: r334488 - head/sys/powerpc/include

Justin Hibbits jhibbits at FreeBSD.org
Fri Jun 1 16:31:06 UTC 2018


Author: jhibbits
Date: Fri Jun  1 16:31:05 2018
New Revision: 334488
URL: https://svnweb.freebsd.org/changeset/base/334488

Log:
  Unbreak 32-bit binaries on powerpc64
  
  Recently a change was made which broke loading 32-bit binaries on powerpc64,
  with an assertion in ld-elf32.so.1:
  
  ld-elf32.so.1: assert failed:
  /usr/local/poudriere/jails/ppc64/usr/src/libexec/rtld-elf/rtld.c:390
  
  It turns out Elf32_AuxInfo was broken for a very long time on powerpc64, as
  it uses long and pointers, which are both 64 bits on powerpc64, and only
  manifested with the recent work on auxargs.

Modified:
  head/sys/powerpc/include/elf.h

Modified: head/sys/powerpc/include/elf.h
==============================================================================
--- head/sys/powerpc/include/elf.h	Fri Jun  1 16:23:47 2018	(r334487)
+++ head/sys/powerpc/include/elf.h	Fri Jun  1 16:31:05 2018	(r334488)
@@ -69,9 +69,13 @@
 typedef struct {	/* Auxiliary vector entry on initial stack */
 	int	a_type;			/* Entry type. */
 	union {
+#ifdef __powerpc64__
+		int	a_val;		/* Integer value */
+#else
 		long	a_val;		/* Integer value. */
 		void	*a_ptr;		/* Address. */
 		void	(*a_fcn)(void);	/* Function pointer (not used). */
+#endif
 	} a_un;
 } Elf32_Auxinfo;
 


More information about the svn-src-head mailing list