On 2018-06-05 21:01 +0200, Sven Joachim wrote: > Package: libncurses-dev > Version: 6.1+20180210-4 > Severity: normal > > Linking a program as trivial as the following statically fails: > > #include <curses.h> > > int main(void) > { > initscr(); > endwin(); > return 0; > } > > > ,---- > | $ LANG=C gcc curses_min.c -static $(pkg-config --static --libs ncurses) > | > /usr/lib/gcc/i686-linux-gnu/7/../../../i386-linux-gnu/libncurses.a(lib_mouse.o): > In function `_nc_mouse_event': > | (.text+0x5be): undefined reference to `Gpm_GetEvent' > | > /usr/lib/gcc/i686-linux-gnu/7/../../../i386-linux-gnu/libncurses.a(lib_mouse.o): > In function `enable_gpm_mouse': > | (.text+0xc51): undefined reference to `Gpm_Close' > | (.text+0xc89): undefined reference to `Gpm_Open' > | (.text+0xc9d): undefined reference to `Gpm_Close' > | > /usr/lib/gcc/i686-linux-gnu/7/../../../i386-linux-gnu/libncurses.a(lib_mouse.o): > In function `_nc_mouse_init': > | (.text+0xe13): undefined reference to `gpm_fd' > | > /usr/lib/gcc/i686-linux-gnu/7/../../../i386-linux-gnu/libncurses.a(lib_mouse.o): > In function `mouse_activate': > | (.text+0x1032): undefined reference to `gpm_fd' > | collect2: error: ld returned 1 exit status > `---- > > Adding -lgpm works around that, but neither the pkgconfig files nor > ncurses6-config make any mention of -lgpm in the configuration we use > for the static libraries, so I guess it is not intended to be necessary. > > In stretch linking the above program without -lgpm works, not sure when > exactly that broke.
Further investigation revealed that it worked in libncurses5-dev versions up to 6.1-1, but broke with the switch to ABI 6 in 6.1+20180210-1. Cheers, Sven