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 Aug 7, 2024
1 parent d797ccf commit cc65c5e
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 using shared libraries.
*
* 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 using shared libraries.
*
* 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 using shared libraries.
*
* 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 libphoenix
2 changes: 1 addition & 1 deletion phoenix-rtos-kernel
2 changes: 1 addition & 1 deletion phoenix-rtos-utils
Submodule phoenix-rtos-utils updated 83 files
+2 −2 _targets/Makefile.ia32-generic
+29 −0 ld.elf_so/LICENCE.NetBSD
+58 −0 ld.elf_so/Makefile
+3 −0 ld.elf_so/NetBSD/README.md
+72 −0 ld.elf_so/NetBSD/arch/i386/elf_machdep.h
+333 −0 ld.elf_so/NetBSD/bitops.h
+775 −0 ld.elf_so/NetBSD/cdefs.h
+254 −0 ld.elf_so/NetBSD/cdefs_elf.h
+136 −0 ld.elf_so/NetBSD/dlfcn.h
+1,497 −0 ld.elf_so/NetBSD/exec_elf.h
+24 −0 ld.elf_so/NetBSD/indent.pro
+70 −0 ld.elf_so/NetBSD/link_elf.h
+655 −0 ld.elf_so/NetBSD/queue.h
+181 −0 ld.elf_so/README.TLS
+37 −0 ld.elf_so/TODO
+12 −0 ld.elf_so/arch/aarch64/Makefile.inc
+467 −0 ld.elf_so/arch/aarch64/mdreloc.c
+324 −0 ld.elf_so/arch/aarch64/rtld_start.S
+11 −0 ld.elf_so/arch/alpha/Makefile.inc
+576 −0 ld.elf_so/arch/alpha/alpha_reloc.c
+194 −0 ld.elf_so/arch/alpha/rtld_start.S
+16 −0 ld.elf_so/arch/arm/Makefile.inc
+90 −0 ld.elf_so/arch/arm/find_exidx.c
+361 −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
+773 −0 ld.elf_so/arch/hppa/hppa_reloc.c
+239 −0 ld.elf_so/arch/hppa/rtld_start.S
+17 −0 ld.elf_so/arch/i386/Makefile.inc
+336 −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
+268 −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
+549 −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
+295 −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
+564 −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
+14 −0 ld.elf_so/arch/riscv/Makefile.inc
+330 −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
+299 −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
+486 −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
+646 −0 ld.elf_so/arch/sparc64/mdreloc.c
+171 −0 ld.elf_so/arch/sparc64/rtld_start.S
+10 −0 ld.elf_so/arch/vax/Makefile.inc
+224 −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
+378 −0 ld.elf_so/arch/x86_64/mdreloc.c
+108 −0 ld.elf_so/arch/x86_64/rtld_start.S
+64 −0 ld.elf_so/debug.c
+64 −0 ld.elf_so/debug.h
+159 −0 ld.elf_so/expand.c
+81 −0 ld.elf_so/hash.c
+42 −0 ld.elf_so/hash.h
+571 −0 ld.elf_so/headers.c
+240 −0 ld.elf_so/ld.elf_so.1
+288 −0 ld.elf_so/load.c
+590 −0 ld.elf_so/map_object.c
+262 −0 ld.elf_so/paths.c
+362 −0 ld.elf_so/reloc.c
+1,718 −0 ld.elf_so/rtld.c
+509 −0 ld.elf_so/rtld.h
+86 −0 ld.elf_so/rtldenv.h
+194 −0 ld.elf_so/search.c
+584 −0 ld.elf_so/symbol.c
+27 −0 ld.elf_so/symbols.map
+333 −0 ld.elf_so/symver.c
+538 −0 ld.elf_so/tls.c
+491 −0 ld.elf_so/xmalloc.c
+318 −0 ld.elf_so/xprintf.c

0 comments on commit cc65c5e

Please sign in to comment.