Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Sep 2018 19:29:35 +0000 (UTC)
From:      Andreas Tobler <andreast@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r338930 - head/libexec/rtld-elf/powerpc
Message-ID:  <201809251929.w8PJTZl9021331@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andreast
Date: Tue Sep 25 19:29:35 2018
New Revision: 338930
URL: https://svnweb.freebsd.org/changeset/base/338930

Log:
  Bring the 32-bit powerpc (PowerMac) back to live. The commit 338486 reworked
  some TLS bits. This broke operation on the PowerMac. Namely one could not login.
  At login the screen/shell was giving back lots of backslashes and the login
  shell dumped core.
  
  The fix to this issue is to revert the powerpc commit from 338486 and to
  increase the TLS_TCB_SIZE to 16.
  Reverting only did not help, login was possible but userland applications
  aborted with strange messages.
  
  I tested this patch with world/kernel builds and with port upgrades.
  Additionally a full gcc8 bootstrap was successfully completed.
  
  Reviewed by: jhibbits@
  Approved by: re (Glen)

Modified:
  head/libexec/rtld-elf/powerpc/rtld_machdep.h

Modified: head/libexec/rtld-elf/powerpc/rtld_machdep.h
==============================================================================
--- head/libexec/rtld-elf/powerpc/rtld_machdep.h	Tue Sep 25 18:54:18 2018	(r338929)
+++ head/libexec/rtld-elf/powerpc/rtld_machdep.h	Tue Sep 25 19:29:35 2018	(r338930)
@@ -69,12 +69,12 @@ void _rtld_powerpc_pltcall(void);
 
 #define TLS_TP_OFFSET	0x7000
 #define TLS_DTV_OFFSET	0x8000
-#define TLS_TCB_SIZE	8
+#define TLS_TCB_SIZE	16
 
 #define round(size, align) \
     (((size) + (align) - 1) & ~((align) - 1))
 #define calculate_first_tls_offset(size, align) \
-    TLS_TCB_SIZE
+    round(8, align)
 #define calculate_tls_offset(prev_offset, prev_size, size, align) \
     round(prev_offset + prev_size, align)
 #define calculate_tls_end(off, size)    ((off) + (size))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201809251929.w8PJTZl9021331>