/*
 * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
 * Copyright (c) 1996 by Silicon Graphics.  All rights reserved.
 * Copyright (c) 1998 by Fergus Henderson.  All rights reserved.
 * Copyright (c) 2000-2010 by Hewlett-Packard Development Company.
 * All rights reserved.
 *
 * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
 * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
 *
 * Permission is hereby granted to use or copy this program
 * for any purpose,  provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 */

# include "private/gc_priv.h"

# include <stdio.h>

int main(void)
{
#   if defined(GC_USE_LD_WRAP)
        printf("-Wl,--wrap -Wl,dlopen "
               "-Wl,--wrap -Wl,pthread_create -Wl,--wrap -Wl,pthread_join "
               "-Wl,--wrap -Wl,pthread_detach -Wl,--wrap -Wl,pthread_sigmask "
               "-Wl,--wrap -Wl,pthread_exit -Wl,--wrap -Wl,pthread_cancel\n");
#   endif
#   if (defined(GC_LINUX_THREADS) && !defined(HOST_ANDROID)) \
        || defined(GC_IRIX_THREADS) || defined(GC_DARWIN_THREADS) \
        || defined(GC_AIX_THREADS) || (defined(HURD) && defined(GC_THREADS))
#       ifdef GC_USE_DLOPEN_WRAP
          printf("-ldl ");
#       endif
        printf("-lpthread\n");
#   endif
#   if defined(GC_OPENBSD_THREADS)
        printf("-pthread\n");
#   endif
#   if defined(GC_FREEBSD_THREADS)
#       ifdef GC_USE_DLOPEN_WRAP
          printf("-ldl ");
#       endif
#       if (__FREEBSD_version < 500000)
          printf("-pthread\n");
#       else /* __FREEBSD__ || __DragonFly__ */
          printf("-lpthread\n");
#       endif
#   endif
#   if defined(GC_NETBSD_THREADS)
          printf("-lpthread -lrt\n");
#   endif

#   if defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS)
        printf("-lpthread -lrt\n");
#   endif
#   if defined(GC_SOLARIS_THREADS)
        printf("-lthread -lposix4\n");
                /* Is this right for recent versions? */
#   endif
#   if defined(GC_WIN32_THREADS) && defined(CYGWIN32)
        printf("-lpthread\n");
#   endif
#   if defined(GC_WIN32_PTHREADS)
#     ifdef PTW32_STATIC_LIB
        /* assume suffix s for static version of the pthreads-win32 library */
        printf("-lpthreadGC2s -lws2_32\n");
#     else
        printf("-lpthreadGC2\n");
#     endif
#   endif
#   if defined(GC_OSF1_THREADS)
        printf("-pthread -lrt\n"); /* DOB: must be -pthread, not -lpthread */
#   endif
    /* You need GCC 3.0.3 to build this one!            */
    /* DG/UX native gcc doesn't know what "-pthread" is */
#   if defined(GC_DGUX386_THREADS)
        printf("-ldl -pthread\n");
#   endif
    return 0;
}
