1 /* $OpenBSD: test2.c,v 1.4 2024/08/23 12:56:26 anton Exp $ */
2
3 /*
4 * Copyright (c) 2007 Kurt Miller <kurt@openbsd.org>
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 #include <dlfcn.h>
20 #include <err.h>
21 #include <stdio.h>
22
23 void *hidden_check = NULL;
24 __asm(".hidden hidden_check");
25
26 void *libaa_hidden_val = NULL;
27 void *libab_hidden_val = NULL;
28
29 extern void test_aa(void);
30 extern void test_ab(void);
31
32 int
main()33 main()
34 {
35 test_aa();
36 test_ab();
37
38 if (hidden_check != NULL)
39 errx(1, "hidden_check != NULL in main prog");
40
41 if (libaa_hidden_val == NULL || libab_hidden_val == NULL ||
42 libaa_hidden_val == libab_hidden_val)
43 errx(1, "incorrect hidden_check detected in libs");
44
45 return (0);
46 }
47