source: rtems/testsuites/libtests/dl07/dl-o4.c @ 95c1921

5
Last change on this file since 95c1921 was 03139d5b, checked in by Chris Johns <chrisj@…>, on 11/20/18 at 03:56:11

libdl: Add object file dependencies to track references

Tracking references lets us manage when an object file can be
unloaded. If an object file has references to it, it cannot be
unloaded.

Modules that depend on each other cannot be unloaded.

Updates #3605

  • Property mode set to 100644
File size: 2.2 KB
Line 
1/*
2 * Copyright (c) 2014 Chris Johns <chrisj@rtems.org>.  All rights reserved.
3 *
4 * The license and distribution terms for this file may be
5 * found in the file LICENSE in this distribution or at
6 * http://www.rtems.org/license/LICENSE.
7 */
8
9#include "dl-load.h"
10#include "dl-o1.h"
11#include "dl-o4.h"
12
13#include <rtems/test.h>
14
15#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
16
17
18int         dl04_unresolv_1;
19float       dl04_unresolv_2;
20char        dl04_unresolv_3;
21char*       dl04_unresolv_4;
22const int   dl04_unresolv_5 = 4;
23const char* dl04_unresolv_6 = "dl-O4";
24
25/*
26 * Yes a decl in the source. This is a modules main and I could not find which
27 * header main is defined in.
28 */
29int rtems_main_o4 (int argc, const char* argv[]);
30
31#define DL_NAME       "dlo4"
32#define PAINT_VAR(_v) sizeof(_v), &_v, _v
33
34int rtems_main_o4 (int argc, const char* argv[])
35{
36  printf (DL_NAME ": module: %s\n", dl_localise_file (__FILE__));
37  printf (DL_NAME ":         dl01_bss1: %4u: %p: %d\n",   PAINT_VAR (dl01_bss1));
38  printf (DL_NAME ":         dl01_bss2: %4u: %p: %f\n",   PAINT_VAR (dl01_bss2[0]));
39  printf (DL_NAME ":         dl01_bss3: %4u: %p: %02x\n", PAINT_VAR (dl01_bss3[0]));
40  printf (DL_NAME ":        dl01_data1: %4u: %p: %d\n",   PAINT_VAR (dl01_data1));
41  /* no  %f in the rtems test printer */
42  printf (DL_NAME ":        dl01_data2: %4u: %p: %f\n",   PAINT_VAR (dl01_data2));
43  printf (DL_NAME ":       dl01_const1: %4u: %p: %d\n",   PAINT_VAR (dl01_const1));
44  printf (DL_NAME ":       dl01_const2: %4u: %p: %f\n",   PAINT_VAR (dl01_const2));
45  printf (DL_NAME ":        dl01_func1: %4u: %p\n",       sizeof(dl01_func1), &dl01_func1);
46  printf (DL_NAME ":   dl04_unresolv_1: %4u: %p: %d\n",   PAINT_VAR (dl04_unresolv_1));
47  printf (DL_NAME ":   dl04_unresolv_2: %4u: %p: %f\n",   PAINT_VAR (dl04_unresolv_2));
48  printf (DL_NAME ":   dl04_unresolv_3: %4u: %p: %02x\n", PAINT_VAR (dl04_unresolv_3));
49  printf (DL_NAME ":   dl04_unresolv_4: %4u: %p: %p\n",   PAINT_VAR (dl04_unresolv_4));
50  printf (DL_NAME ":   dl04_unresolv_5: %4u: %p: %d\n",   PAINT_VAR (dl04_unresolv_5));
51  printf (DL_NAME ":   dl04_unresolv_6: %4u: %p: %s\n",   PAINT_VAR (dl04_unresolv_6));
52  return 0;
53}
Note: See TracBrowser for help on using the repository browser.