diff options
author | Jaymes Wilks <mjwilks@us.ibm.com> | 2019-02-04 14:06:56 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-03-11 17:07:52 -0500 |
commit | f5475890894b4d542f622cee27604de15b41bb4b (patch) | |
tree | c7462a5d51689fab8dfbe66dd87c6263e8e44959 /src/makefile | |
parent | 676c584aaa7046d45d0c9ac3851699566d905bac (diff) | |
download | talos-hostboot-f5475890894b4d542f622cee27604de15b41bb4b.tar.gz talos-hostboot-f5475890894b4d542f622cee27604de15b41bb4b.zip |
Support thread local storage
Generally adds support to declare variables as thread_local
- Add support in HBRT start assembly to skip adjusting TLS relocations
- Add support in linker to generate tagged TLS entries
- Update linker to process TLS relocations correctly
- Update TLS code to ignore top half of module ID
- Update module images to hold a "module ID"
- Update custome linker to update module ID during binary link
- Update TLS code to track TLS sections via module ID
Change-Id: I1589550d7787beb08827ca24a728397dedf0373b
RTC: 147599
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71709
Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/makefile')
-rw-r--r-- | src/makefile | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/makefile b/src/makefile index 6b562d166..a9c918dd0 100644 --- a/src/makefile +++ b/src/makefile @@ -58,7 +58,6 @@ BASE_OBJECTS += cxxtest_data.o BASE_OBJECTS += sprintf.o BASE_OBJECTS += crc32.o BASE_OBJECTS += utilmisc.o -BASE_OBJECTS += tls.o ifdef HOSTBOOT_PROFILE BASE_OBJECTS += gcov.o @@ -340,7 +339,7 @@ hbibl_OBJECTS += ${BOOTLDR_OBJECTS} hbibl_LDFILE = bootloader.ld hbibl_NO_RELOCATION = 1 -hbicore_OBJECTS += ${BASE_OBJECTS} +hbicore_OBJECTS += ${BASE_OBJECTS} tls.o hbicore_OBJECTS += ${DIRECT_BOOT_OBJECTS} hbicore_MODULES += ${BASE_MODULES} hbicore_EXTENDED_MODULES += ${EXTENDED_MODULES} @@ -369,7 +368,7 @@ endif hbicore_test_LDFILE = kernel.ld hbirt_OBJECTS += ${RUNTIME_OBJECTS} -hbirt_OBJECTS += ${BASE_OBJECTS} +hbirt_OBJECTS += ${BASE_OBJECTS} tlsrt.o hbirt_MODULES += ${RUNTIME_MODULES} hbirt_DATA_MODULES += ${RUNTIME_DATA_MODULES} hbirt_DATA_MODULES += $(if $(CONFIG_HBRT_PRD),$(prd_rule_prf_targets)) |