Christian Egli wrote:

../tools/gnulib/.libs/libgnutools.a(getopt.o): In function 
`process_long_option':
/home/eglic/src/liblouis/tools/gnulib/getopt.c:281: undefined reference to 
`flockfile'
/home/eglic/src/liblouis/tools/gnulib/getopt.c:295: undefined reference to 
`funlockfile'
collect2: error: ld returned 1 exit status
Makefile:1098: recipe for target 'lou_allround.exe' failed

I do not fully understand the source of gnulib/getopt.c but could it be
that

# ifndef _POSIX_THREAD_SAFE_FUNCTIONS
#  define flockfile(fp) /* nop */
#  define funlockfile(fp) /* nop */
# endif

is not invoked when cross-compiling with mingw?

Nothing to do with that. I got the same error. Since most modern
MinGW uses win-pthreads, they define:
 #define _POSIX_THREAD_SAFE_FUNCTIONS 200112L

in their <pthread_unistd.h> (line:150). So I think Gnulib should
just say:

  # if !HAVE_DECL_FLOCKFILE
  #  define flockfile(fp) /* nop */
  #  define funlockfile(fp) /* nop */
  # endif

instead. Similar to getdelim.c etc.

--
--gv

Reply via email to