David, On 22 August 2017 at 04:53, David C. Rankin <drankinatty@xxxxxxxxxxxxxxxxxx> wrote: > All, > > The man 3 dlopen example needs updating to run on x86_64. It will run fine > as a 32-bit compile (with -m32), but fails without it, e.g. > > $ gcc -Wall -Wextra -pedantic -Wshadow -std=gnu11 -Ofast -ldl -o > bin/dlopen_man_ex dlopen_man_ex.c > > $ ./bin/dlopen_man_ex > /usr/lib/libm.so: invalid ELF header > > While limiting the target to 32-bit works as advertised: > > $ gcc -Wall -Wextra -pedantic -Wshadow -m32 -std=gnu11 -Ofast -ldl -o > bin/dlopen_man_ex dlopen_man_ex.c > > $ ./bin/dlopen_man_ex > -0.416147 > > This behavior is confirmed both on openSuSE and Archlinux with > > gcc (GCC) 7.1.1 20170630 (on Archlinux with multilib support) > > I'm not exactly sure where in the compile and library search the problem > with the example is, but explicitly specifying /usr/lib64/libm.so doesn't > change the error on x86_64. Whether this is a libdl problem? It may be > something simple I'm just being dense about, but I thought I would pass this > along for verification and correction, if required. Can you show the source code of the example that you are using that doesn't work. I wonder if you may be looking at an old version of the manual page. Cheers, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html