aboutsummaryrefslogblamecommitdiff
path: root/04_dynld_nostd/main.c
blob: 709fad0ebd24f669d7772c5730a304a4db735acf (plain) (tree)
1
2
3
4
5
6
7
8
9







                                     
                   



                                              
                                                                   


                                               

                                                                               
 
// Copyright (c) 2020 Johannes Stoelp

#include <io.h>
#include <syscalls.h>

// API of `libgreet.so`.
extern const char* get_greet();
extern const char* get_greet2();
extern int gCalled;

void _start() {
    pfmt("Running _start() @ %s\n", __FILE__);

    // Call function from libgreet.so -> generates PLT relocations.
    pfmt("get_greet()  -> %s\n", get_greet());
    pfmt("get_greet2() -> %s\n", get_greet2());

    // Reference global variable from libgreet.so -> generates RELA relocation.
    pfmt("libgreet.so called %d times\n", gCalled);
}