Skip to content

Commit

Permalink
Add dynamic linking support
Browse files Browse the repository at this point in the history
JIRA: RTOS-664
  • Loading branch information
badochov committed Jan 30, 2024
1 parent faf9713 commit ef2ca8f
Show file tree
Hide file tree
Showing 8 changed files with 94 additions and 4 deletions.
18 changes: 18 additions & 0 deletions _user/sharedlib/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#
# Makefile for user application
#
# Copyright 2024 Phoenix Systems
#

NAME := libdyn
LOCAL_HEADERS := dyn.h
LOCAL_SRCS := dyn.c

include $(shared-lib.mk)


NAME := sharedlib
LOCAL_SRCS := main.c
DEP_LIBS_SHARED := libdyn

include $(binary-dyn.mk)
25 changes: 25 additions & 0 deletions _user/sharedlib/dyn.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Phoenix-RTOS
*
* sharedlib
*
* Example of user application
*
* Copyright 2024 Phoenix Systems
* Author: Hubert badocha
*
* This file is part of Phoenix-RTOS.
*
* %LICENSE%
*/

#include "dyn.h"


extern void *_DYNAMIC;


void *dyn(void)
{
return &_DYNAMIC;
}
22 changes: 22 additions & 0 deletions _user/sharedlib/dyn.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Phoenix-RTOS
*
* sharedlib
*
* Example of user application
*
* Copyright 2024 Phoenix Systems
* Author: Hubert badocha
*
* This file is part of Phoenix-RTOS.
*
* %LICENSE%
*/


#ifndef _USER_SHAREDLIB_DYN_H_
#define _USER_SHAREDLIB_DYN_H_

void *dyn(void);

#endif
25 changes: 25 additions & 0 deletions _user/sharedlib/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Phoenix-RTOS
*
* sharedlib
*
* Example of user application
*
* Copyright 2024 Phoenix Systems
* Author: Hubert Badocha
*
* This file is part of Phoenix-RTOS.
*
* %LICENSE%
*/

#include <stdio.h>

#include "dyn.h"

int main(void)
{
printf("Dynamic section pointer %p\n", dyn());

return 0;
}
2 changes: 1 addition & 1 deletion phoenix-rtos-kernel
2 changes: 1 addition & 1 deletion phoenix-rtos-utils
Submodule phoenix-rtos-utils updated 80 files
+3 −3 _targets/Makefile.ia32-generic
+68 −0 ld.elf_so/Makefile
+197 −0 ld.elf_so/Makefile.old
+68 −0 ld.elf_so/README.TLS
+37 −0 ld.elf_so/TODO
+12 −0 ld.elf_so/arch/aarch64/Makefile.inc
+449 −0 ld.elf_so/arch/aarch64/mdreloc.c
+289 −0 ld.elf_so/arch/aarch64/rtld_start.S
+11 −0 ld.elf_so/arch/alpha/Makefile.inc
+573 −0 ld.elf_so/arch/alpha/alpha_reloc.c
+194 −0 ld.elf_so/arch/alpha/rtld_start.S
+17 −0 ld.elf_so/arch/arm/Makefile.inc
+87 −0 ld.elf_so/arch/arm/find_exidx.c
+349 −0 ld.elf_so/arch/arm/mdreloc.c
+95 −0 ld.elf_so/arch/arm/rtld_start.S
+14 −0 ld.elf_so/arch/hppa/Makefile.inc
+749 −0 ld.elf_so/arch/hppa/hppa_reloc.c
+239 −0 ld.elf_so/arch/hppa/rtld_start.S
+13 −0 ld.elf_so/arch/i386/Makefile.inc
+328 −0 ld.elf_so/arch/i386/mdreloc.c
+80 −0 ld.elf_so/arch/i386/rtld_start.S
+10 −0 ld.elf_so/arch/m68k/Makefile.inc
+265 −0 ld.elf_so/arch/m68k/mdreloc.c
+80 −0 ld.elf_so/arch/m68k/rtld_start.S
+12 −0 ld.elf_so/arch/mips/Makefile.inc
+546 −0 ld.elf_so/arch/mips/mips_reloc.c
+140 −0 ld.elf_so/arch/mips/rtld_start.S
+11 −0 ld.elf_so/arch/or1k/Makefile.inc
+292 −0 ld.elf_so/arch/or1k/mdreloc.c
+118 −0 ld.elf_so/arch/or1k/rtld_start.S
+15 −0 ld.elf_so/arch/powerpc/Makefile.inc
+548 −0 ld.elf_so/arch/powerpc/ppc_reloc.c
+145 −0 ld.elf_so/arch/powerpc/rtld_start.S
+128 −0 ld.elf_so/arch/powerpc/rtld_start64.S
+12 −0 ld.elf_so/arch/riscv/Makefile.inc
+318 −0 ld.elf_so/arch/riscv/mdreloc.c
+123 −0 ld.elf_so/arch/riscv/rtld_start.S
+10 −0 ld.elf_so/arch/sh3/Makefile.inc
+287 −0 ld.elf_so/arch/sh3/mdreloc.c
+117 −0 ld.elf_so/arch/sh3/rtld_start.S
+11 −0 ld.elf_so/arch/sparc/Makefile.inc
+474 −0 ld.elf_so/arch/sparc/mdreloc.c
+81 −0 ld.elf_so/arch/sparc/rtld_start.S
+11 −0 ld.elf_so/arch/sparc64/Makefile.inc
+634 −0 ld.elf_so/arch/sparc64/mdreloc.c
+172 −0 ld.elf_so/arch/sparc64/rtld_start.S
+10 −0 ld.elf_so/arch/vax/Makefile.inc
+221 −0 ld.elf_so/arch/vax/mdreloc.c
+278 −0 ld.elf_so/arch/vax/rtld_start.S
+11 −0 ld.elf_so/arch/x86_64/Makefile.inc
+375 −0 ld.elf_so/arch/x86_64/mdreloc.c
+108 −0 ld.elf_so/arch/x86_64/rtld_start.S
+321 −0 ld.elf_so/bitops.h
+93 −0 ld.elf_so/compat.c
+61 −0 ld.elf_so/debug.c
+64 −0 ld.elf_so/debug.h
+9 −0 ld.elf_so/diagassert.c
+128 −0 ld.elf_so/dlfcn.h
+1,566 −0 ld.elf_so/exec_elf.h
+156 −0 ld.elf_so/expand.c
+79 −0 ld.elf_so/hash.c
+42 −0 ld.elf_so/hash.h
+564 −0 ld.elf_so/headers.c
+240 −0 ld.elf_so/ld.elf_so.1
+284 −0 ld.elf_so/load.c
+586 −0 ld.elf_so/map_object.c
+259 −0 ld.elf_so/paths.c
+655 −0 ld.elf_so/queue.h
+359 −0 ld.elf_so/reloc.c
+1,743 −0 ld.elf_so/rtld.c
+566 −0 ld.elf_so/rtld.h
+86 −0 ld.elf_so/rtldenv.h
+191 −0 ld.elf_so/search.c
+581 −0 ld.elf_so/symbol.c
+27 −0 ld.elf_so/symbols.map
+332 −0 ld.elf_so/symver.c
+112 −0 ld.elf_so/sysident.h
+329 −0 ld.elf_so/tls.c
+492 −0 ld.elf_so/xmalloc.c
+314 −0 ld.elf_so/xprintf.c

0 comments on commit ef2ca8f

Please sign in to comment.