Changeset eefdd7c in mainline
- Timestamp:
- 2019-01-20T10:02:08Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4f13e19
- Parents:
- a131536d
- Files:
-
- 5 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
HelenOS.config
ra131536d reefdd7c 578 578 579 579 % Dynamic linking support 580 ! [PLATFORM=amd64|PLATFORM=ia32|PLATFORM= sparc64] CONFIG_RTLD (y/n)581 ! [PLATFORM=abs32le|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM= ppc32|PLATFORM=riscv64] CONFIG_RTLD (n)580 ! [PLATFORM=amd64|PLATFORM=ia32|PLATFORM=ppc32|PLATFORM=sparc64] CONFIG_RTLD (y/n) 581 ! [PLATFORM=abs32le|PLATFORM=arm32|PLATFORM=ia64|PLATFORM=mips32|PLATFORM=riscv64] CONFIG_RTLD (n) 582 582 583 583 % Build shared libraries -
uspace/lib/c/arch/ppc32/Makefile.common
ra131536d reefdd7c 33 33 endif 34 34 35 COMMON_CFLAGS += -mcpu=powerpc -m$(FLOATS)-float -m32 35 COMMON_CFLAGS += -mcpu=powerpc -m$(FLOATS)-float -m32 -Wl,-z,max-page-size=0x1000 36 36 AFLAGS += -a32 37 37 LDFLAGS += -Wl,--gc-sections -
uspace/lib/c/arch/ppc32/Makefile.inc
ra131536d reefdd7c 34 34 arch/$(UARCH)/src/tls.c \ 35 35 arch/$(UARCH)/src/stacktrace.c \ 36 arch/$(UARCH)/src/stacktrace_asm.S 36 arch/$(UARCH)/src/stacktrace_asm.S \ 37 arch/$(UARCH)/src/rtld/dynamic.c \ 38 arch/$(UARCH)/src/rtld/reloc.c 37 39 38 40 ARCH_AUTOCHECK_HEADERS = \ -
uspace/lib/c/arch/ppc32/include/libarch/tls.h
ra131536d reefdd7c 43 43 44 44 typedef struct { 45 void **dtv; 46 void *pad; 45 47 void *fibril_data; 46 48 } tcb_t; -
uspace/lib/c/arch/ppc32/src/tls.c
ra131536d reefdd7c 1 1 /* 2 * Copyright (c) 2019 Jiri Svoboda 2 3 * Copyright (c) 2006 Ondrej Palkovsky 3 4 * All rights reserved. … … 36 37 #include <stddef.h> 37 38 39 #ifdef CONFIG_RTLD 40 #include <rtld/rtld.h> 41 #endif 42 38 43 tcb_t *tls_alloc_arch(size_t size, size_t align) 39 44 { … … 46 51 } 47 52 53 /* 54 * Rtld TLS support 55 */ 56 57 typedef struct { 58 unsigned long int ti_module; 59 unsigned long int ti_offset; 60 } tls_index; 61 62 int __tls_debug = 0; 63 64 void *__tls_get_addr(tls_index *ti); 65 66 void *__tls_get_addr(tls_index *ti) 67 { 68 uint8_t *tls; 69 70 #ifdef CONFIG_RTLD 71 if (runtime_env != NULL) { 72 return rtld_tls_get_addr(runtime_env, __tcb_get(), 73 ti->ti_module, ti->ti_offset) + 0x8000; 74 } 75 #endif 76 /* Get address of static TLS block */ 77 tls = tls_get(); 78 return tls + ti->ti_offset + 0x8000; 79 } 80 48 81 /** @} 49 82 */
Note:
See TracChangeset
for help on using the changeset viewer.