source: rtems/testsuites/libtests/dl07/dl-o2.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.0 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-o2.h"
12
13#include <rtems/test.h>
14
15#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
16
17int   dl02_bss1;
18float dl02_bss2[7];
19char  dl02_bss3[21];
20int   dl02_data1;
21float dl02_data2;
22
23/*
24 * Yes a decl in the source. This is a modules main and I could not find which
25 * header main is defined in.
26 */
27int rtems_main_o2 (int argc, const char* argv[]);
28
29#define DL_NAME       "dlo2"
30#define PAINT_VAR(_v) sizeof(_v), &_v, _v
31
32int rtems_main_o2 (int argc, const char* argv[])
33{
34  printf (DL_NAME ": module: %s\n", dl_localise_file (__FILE__));
35  printf (DL_NAME ":         dl01_bss1: %4u: %p: %d\n",   PAINT_VAR (dl01_bss1));
36  printf (DL_NAME ":         dl01_bss2: %4u: %p: %f\n",   PAINT_VAR (dl01_bss2[0]));
37  printf (DL_NAME ":         dl01_bss3: %4u: %p: %02x\n", PAINT_VAR (dl01_bss3[0]));
38  printf (DL_NAME ":        dl01_data1: %4u: %p: %d\n",   PAINT_VAR (dl01_data1));
39  /* no  %f in the rtems test printer */
40  printf (DL_NAME ":        dl01_data2: %4u: %p: %f\n",   PAINT_VAR (dl01_data2));
41  printf (DL_NAME ":       dl01_const1: %4u: %p: %d\n",   PAINT_VAR (dl01_const1));
42  printf (DL_NAME ":       dl01_const2: %4u: %p: %f\n",   PAINT_VAR (dl01_const2));
43  printf (DL_NAME ":        dl01_func1: %4u: %p\n",       sizeof(dl01_func1), &dl01_func1);
44  printf (DL_NAME ":         dl02_bss1: %4u: %p: %d\n",   PAINT_VAR (dl02_bss1));
45  printf (DL_NAME ":         dl02_bss2: %4u: %p: %f\n",   PAINT_VAR (dl02_bss2[0]));
46  printf (DL_NAME ":         dl02_bss3: %4u: %p: %02x\n", PAINT_VAR (dl02_bss3[0]));
47  printf (DL_NAME ":        dl02_data1: %4u: %p: %d\n",   PAINT_VAR (dl02_data1));
48  /* no %f in the rtems test printer */
49  printf (DL_NAME ":        dl02_data2: %4u: %p: %f\n",   PAINT_VAR (dl02_data2));
50  return 0;
51}
Note: See TracBrowser for help on using the repository browser.