annotate src/ocaml-flexdll-test.c @ 5893:53a6c7df43f8

Mesa 3D: Update to version 21.1.8. * src/mesa.mk: Update version and checksum. * src/mesa-2-uninitialized.patch: Remove file. * dist-files.mk: Remove file from list.
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 16 Sep 2021 22:37:45 +0200
parents d3677521718a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2703
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
1 /*****************************************************************
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
2 FlexDLL
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
3 Alain Frisch
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
4
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
5 Copyright 2007 Institut National de Recherche en Informatique et
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
6 en Automatique.
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
7
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
8 ******************************************************************/
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
9
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
10 /* An example (main program) */
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
11
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
12 #include <stdlib.h>
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
13 #include <stdio.h>
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
14 #include "flexdll.h"
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
15
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
16 typedef void torun();
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
17
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
18 void api(char *msg){ printf("API: %s\n", msg); }
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
19
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
20 int main(int argc, char **argv)
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
21 {
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
22 void *sym;
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
23 void *handle;
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
24 int i;
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
25 torun *torun;
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
26
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
27 printf("INIT\n"); fflush(stdout);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
28 flexdll_dump_exports(NULL);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
29 printf("OK\n"); fflush(stdout);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
30 for (i = 1; i < argc; i++) {
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
31 printf("** Loading %s\n", argv[i]);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
32 handle = flexdll_dlopen(argv[i], FLEXDLL_RTLD_GLOBAL);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
33 if (NULL == handle) { printf("error: %s\n", flexdll_dlerror()); exit(2); }
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
34 printf("** handle = %p\n", handle);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
35 flexdll_dump_exports(handle);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
36 flexdll_dump_relocations(handle);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
37
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
38 if (NULL == handle) { printf("error: %s\n", flexdll_dlerror()); exit(2); }
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
39
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
40 torun = flexdll_dlsym(handle, "torun");
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
41 if (torun) torun();
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
42 }
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
43 exit(0);
d3677521718a add package ocaml-flexdll
William <r.3@libertysurf.fr>
parents:
diff changeset
44 }