Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/dltest/dltest.c

    r8e3bc063 rb192915a  
    11/*
    2  * Copyright (c) 2016 Jiri Svoboda
     2 * Copyright (c) 2024 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    571571#ifdef DLTEST_LINKED
    572572
     573/** Test if we can read the correct value of a public pointer variable.
     574 *
     575 * dl_public_ptr_var is initialized in libdltest to point to dl_public_var.
     576 * This is done using a relocation. The main program (unless compiled with
     577 * PIC or PIE) will contain a copy of dl_public_ptr_var. This needs
     578 * to be copied using a COPY relocation. The relocations in the main
     579 * program need to be processed after the relocations in the shared
     580 * libraries (so that we copy the correct value).
     581 */
     582static bool test_public_ptr_var(void)
     583{
     584        int *ptr;
     585
     586        printf("Read dl_public_ptr_var directly...\n");
     587        ptr = dl_public_ptr_var;
     588
     589        if (ptr != &dl_public_var) {
     590                printf("FAILED\n");
     591                return false;
     592        }
     593
     594        printf("Passed\n");
     595        return true;
     596}
     597
    573598/** Test directly calling function that returns a constant */
    574599static bool test_lnk_dl_get_constant(void)
     
    920945
    921946#ifndef STATIC_EXE
     947
    922948        if (!test_dlfcn_dl_get_private_fib_var())
    923949                return 1;
     
    9741000
    9751001        if (!test_lnk_read_public_uvar())
     1002                return 1;
     1003
     1004        if (!test_public_ptr_var())
    9761005                return 1;
    9771006
Note: See TracChangeset for help on using the changeset viewer.