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;
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to