guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.1-21-g00b6ef


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.1-21-g00b6ef2
Date: Wed, 04 May 2011 18:24:03 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=00b6ef23f320afff35fcc3a163bc66d5f9a230e8

The branch, stable-2.0 has been updated
       via  00b6ef23f320afff35fcc3a163bc66d5f9a230e8 (commit)
       via  4a42658f6a49d17cd07919bc4632ae3bddae33e5 (commit)
       via  e3b8bce8f4fb5adf93e42bfa3263f7368ad4a3be (commit)
      from  7ff0f239b2534cba823adc351dda8e64db6f4a08 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 00b6ef23f320afff35fcc3a163bc66d5f9a230e8
Author: Andy Wingo <address@hidden>
Date:   Wed May 4 18:48:02 2011 +0200

    measure time spent in gc
    
    * libguile/gc.c (scm_gc_stats): Set the gc-time-taken entry to our
      recorded value.
      (start_gc_timer, accumulate_gc_timer, scm_init_gc): Arrange to record
      a conservative estimate of time spent in GC.

commit 4a42658f6a49d17cd07919bc4632ae3bddae33e5
Author: Andy Wingo <address@hidden>
Date:   Wed May 4 20:15:23 2011 +0200

    scm_c_get_internal_run_time is more precise
    
    * libguile/stime.h (SCM_TIME_UNITS_PER_SECOND): Redefine to point to a C
      variable instead of being a pure preprocessor thing.  This has the
      possibility to break existing compiled C extensions' interpretation of
      the internal-time-units-per-second, but hopefully there's no too much
      of that code out there, and in the worst case they can just
      recompile.  Scheme code will get it right without the need to
      recompile.
    
    * libguile/stime.c (TIME_UNITS_PER_SECOND): New local define, and
      increase to nanosecond resolution if we are on a system in which this
      is useful and practical.
      (time_from_seconds_and_nanoseconds): New helper.
      (get_internal_real_time, get_internal_run_time): New global vars:
      function pointers.
      (get_internal_real_time_posix_timer):
      (get_internal_run_time_posix_timer):
      (get_internal_real_time_gettimeofday):
      (get_internal_run_time_times):
      (get_internal_real_time_fallback): Various implementations.
      (scm_get_internal_real_time): Return the get_internal_real_time()
      result.
      (scm_c_get_internal_run_time): Likewise.
      (scm_gettimeofday): No need for a critical section, and remove
      obsolete ftime block.
      (scm_init_stime): Init all of the new time bases, and decide on
      implementations of real time and run time accessors.

commit e3b8bce8f4fb5adf93e42bfa3263f7368ad4a3be
Author: Andy Wingo <address@hidden>
Date:   Wed May 4 20:16:55 2011 +0200

    build support for detecting clock_gettime, with -lrt if needed
    
    * acinclude.m4 (gl_CLOCK_TIME):
    * configure.ac: Locally include gl_CLOCK_TIME.  To be fixed properly
      when gnulib updates their license to reflect the actual BSD state of
      things.
    * libguile/Makefile.am (address@hidden@_la_LDFLAGS):
      Add -lrt for clock_gettime, if needed.
    * meta/guile-2.0-uninstalled.pc.in:
    * meta/guile-2.0.pc.in: Likewise, in Libs.private.

-----------------------------------------------------------------------

Summary of changes:
 acinclude.m4                     |   32 +++++
 configure.ac                     |    3 +
 libguile/Makefile.am             |    1 +
 libguile/gc.c                    |   37 ++++++-
 libguile/stime.c                 |  244 +++++++++++++++++++++++++------------
 libguile/stime.h                 |   28 +----
 meta/guile-2.0-uninstalled.pc.in |    2 +-
 meta/guile-2.0.pc.in             |    2 +-
 8 files changed, 242 insertions(+), 107 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 0938671..ba8b090 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -502,3 +502,35 @@ AC_DEFUN([GUILE_LIBUNISTRING_WITH_ICONV_SUPPORT], [
 dnl Declare file $1 to be a script that needs configuring,
 dnl and arrange to make it executable in the process.
 AC_DEFUN([GUILE_CONFIG_SCRIPT],[AC_CONFIG_FILES([$1],[chmod +x $1])])
+
+# clock_time.m4 serial 10
+dnl Copyright (C) 2002-2006, 2009-2011 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Check for clock_gettime and clock_settime, and set LIB_CLOCK_GETTIME.
+# For a program named, say foo, you should add a line like the following
+# in the corresponding Makefile.am file:
+# foo_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
+
+AC_DEFUN([gl_CLOCK_TIME],
+[
+  dnl Persuade glibc and Solaris <time.h> to declare these functions.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+  # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+  # Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
+  # programs in the package would end up linked with that potentially-shared
+  # library, inducing unnecessary run-time overhead.
+  LIB_CLOCK_GETTIME=
+  AC_SUBST([LIB_CLOCK_GETTIME])
+  gl_saved_libs=$LIBS
+    AC_SEARCH_LIBS([clock_gettime], [rt posix4],
+                   [test "$ac_cv_search_clock_gettime" = "none required" ||
+                    LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
+    AC_CHECK_FUNCS([clock_gettime clock_settime])
+  LIBS=$gl_saved_libs
+])
diff --git a/configure.ac b/configure.ac
index 64cab9a..146b77b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -65,6 +65,9 @@ AC_PROG_AWK
 
 dnl Gnulib.
 gl_INIT
+dnl FIXME: remove me and the acinclude.m4 code when clock-gettime is
+dnl LGPL-compatible and can be imported normally.
+gl_CLOCK_TIME
 
 AC_PROG_CC_C89
 
diff --git a/libguile/Makefile.am b/libguile/Makefile.am
index 4ec7ee5..263d6b0 100644
--- a/libguile/Makefile.am
+++ b/libguile/Makefile.am
@@ -472,6 +472,7 @@ address@hidden@_la_LDFLAGS =        \
   $(ISNANF_LIBM)                               \
   $(ISNANL_LIBM)                               \
   $(LDEXP_LIBM)                                        \
+  $(LIB_CLOCK_GETTIME)                                 \
   $(LIBSOCKET)                                 \
   $(LOG1P_LIBM)                                        \
   $(LTLIBICONV)                                        \
diff --git a/libguile/gc.c b/libguile/gc.c
index 7d2724c..0451fbb 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -208,6 +208,9 @@ run_before_gc_c_hook (void)
 /* GC Statistics Keeping
  */
 unsigned long scm_gc_ports_collected = 0;
+static long gc_time_taken = 0;
+static long gc_start_time = 0;
+
 
 static unsigned long protected_obj_count = 0;
 
@@ -284,7 +287,7 @@ SCM_DEFINE (scm_gc_stats, "gc-stats", 0, 0, 0,
   gc_times       = GC_gc_no;
 
   answer =
-    scm_list_n (scm_cons (sym_gc_time_taken, SCM_INUM0),
+    scm_list_n (scm_cons (sym_gc_time_taken, scm_from_long (gc_time_taken)),
                scm_cons (sym_heap_size, scm_from_size_t (heap_size)),
                scm_cons (sym_heap_free_size, scm_from_size_t (free_bytes)),
                scm_cons (sym_heap_total_allocated,
@@ -708,6 +711,36 @@ queue_after_gc_hook (void * hook_data SCM_UNUSED,
   return NULL;
 }
 
+
+
+static void *
+start_gc_timer (void * hook_data SCM_UNUSED,
+                void *fn_data SCM_UNUSED,
+                void *data SCM_UNUSED)
+{
+  if (!gc_start_time)
+    gc_start_time = scm_c_get_internal_run_time ();
+
+  return NULL;
+}
+
+static void *
+accumulate_gc_timer (void * hook_data SCM_UNUSED,
+                void *fn_data SCM_UNUSED,
+                void *data SCM_UNUSED)
+{
+  if (gc_start_time)
+    { long now = scm_c_get_internal_run_time ();
+      gc_time_taken += now - gc_start_time;
+      gc_start_time = 0;
+    }
+
+  return NULL;
+}
+
+
+
+
 char const *
 scm_i_tag_name (scm_t_bits tag)
 {
@@ -803,6 +836,8 @@ scm_init_gc ()
                                   SCM_BOOL_F);
 
   scm_c_hook_add (&scm_before_gc_c_hook, queue_after_gc_hook, NULL, 0);
+  scm_c_hook_add (&scm_before_gc_c_hook, start_gc_timer, NULL, 0);
+  scm_c_hook_add (&scm_after_gc_c_hook, accumulate_gc_timer, NULL, 0);
 
 #ifdef HAVE_GC_SET_START_CALLBACK
   GC_set_start_callback (run_before_gc_c_hook);
diff --git a/libguile/stime.c b/libguile/stime.c
index 78aa673..1c4f407 100644
--- a/libguile/stime.c
+++ b/libguile/stime.c
@@ -64,9 +64,13 @@
 #endif
 
 
-# ifdef HAVE_SYS_TYPES_H
-#  include <sys/types.h>
-# endif
+#ifdef HAVE_CLOCK_GETTIME
+# include <time.h>
+#endif
+
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
 
 #ifdef HAVE_STRING_H
 #include <string.h>
@@ -98,27 +102,98 @@ extern char *strptime ();
 #endif
 
 
-#ifdef HAVE_TIMES
-static
-timet mytime()
+#if SCM_SIZEOF_LONG >= 8 && defined HAVE_CLOCK_GETTIME
+/* Nanoseconds on 64-bit systems with POSIX timers.  */
+#define TIME_UNITS_PER_SECOND 1000000000
+#else
+/* Milliseconds for everyone else.  */
+#define TIME_UNITS_PER_SECOND 1000
+#endif
+
+long scm_c_time_units_per_second = TIME_UNITS_PER_SECOND;
+
+static long
+time_from_seconds_and_nanoseconds (long s, long ns)
+{
+  return s * TIME_UNITS_PER_SECOND
+    + ns / (1000000000 / TIME_UNITS_PER_SECOND);
+}
+
+
+/* A runtime-selectable mechanism to choose a timing mechanism.  Really
+   we want to use POSIX timers, but that's not always possible.  Notably,
+   the user may have everything she needs at compile-time, but if she's
+   running on an SMP machine without a common clock source, she can't
+   use POSIX CPUTIME clocks.  */
+static long (*get_internal_real_time) (void);
+static long (*get_internal_run_time) (void);
+
+
+#ifdef HAVE_CLOCK_GETTIME
+struct timespec posix_real_time_base;
+
+static long
+get_internal_real_time_posix_timer (void)
+{
+  struct timespec ts;
+  clock_gettime (CLOCK_REALTIME, &ts);
+  return time_from_seconds_and_nanoseconds
+    (ts.tv_sec - posix_real_time_base.tv_sec,
+     ts.tv_nsec - posix_real_time_base.tv_nsec);
+}
+
+#ifdef _POSIX_CPUTIME
+struct timespec posix_run_time_base;
+
+static long
+get_internal_run_time_posix_timer (void)
+{
+  struct timespec ts;
+  clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &ts);
+  return time_from_seconds_and_nanoseconds
+    (ts.tv_sec - posix_run_time_base.tv_sec,
+     ts.tv_nsec - posix_run_time_base.tv_nsec);
+}
+#endif /* _POSIX_CPUTIME */
+#endif /* HAVE_CLOCKTIME */
+  
+  
+#ifdef HAVE_GETTIMEOFDAY
+struct timeval gettimeofday_real_time_base;
+
+static long
+get_internal_real_time_gettimeofday (void)
+{
+  struct timeval tv;
+  gettimeofday (&tv, NULL);
+  return time_from_seconds_and_nanoseconds
+    (tv.tv_sec - gettimeofday_real_time_base.tv_sec,
+     (tv.tv_usec - gettimeofday_real_time_base.tv_usec) * 1000);
+}
+#endif
+
+
+#if defined HAVE_TIMES
+static long ticks_per_second;
+
+static long
+get_internal_run_time_times (void)
 {
   struct tms time_buffer;
   times(&time_buffer);
-  return time_buffer.tms_utime + time_buffer.tms_stime;
+  return (time_buffer.tms_utime + time_buffer.tms_stime)
+    * TIME_UNITS_PER_SECOND / ticks_per_second;
 }
-#else
-# ifdef LACK_CLOCK
-#    define mytime() ((time((timet*)0) - scm_your_base) * 
SCM_TIME_UNITS_PER_SECOND)
-# else
-#  define mytime clock
-# endif
 #endif
 
-#ifdef HAVE_FTIME
-struct timeb scm_your_base = {0};
-#else
-timet scm_your_base = 0;
-#endif
+static timet fallback_real_time_base;
+static long
+get_internal_real_time_fallback (void)
+{
+  return time_from_seconds_and_nanoseconds
+    ((long) time (NULL) - fallback_real_time_base, 0);
+}
+
 
 SCM_DEFINE (scm_get_internal_real_time, "get-internal-real-time", 0, 0, 0,
            (),
@@ -126,23 +201,7 @@ SCM_DEFINE (scm_get_internal_real_time, 
"get-internal-real-time", 0, 0, 0,
            "started.")
 #define FUNC_NAME s_scm_get_internal_real_time
 {
-#ifdef HAVE_FTIME
-  struct timeb time_buffer;
-
-  SCM tmp;
-  ftime (&time_buffer);
-  time_buffer.time -= scm_your_base.time;
-  tmp = scm_from_long (time_buffer.millitm - scm_your_base.millitm);
-  tmp = scm_sum (tmp,
-                scm_product (scm_from_int (1000),
-                             scm_from_int (time_buffer.time)));
-  return scm_quotient (scm_product (tmp,
-                                   scm_from_int (SCM_TIME_UNITS_PER_SECOND)),
-                      scm_from_int (1000));
-#else
-  return scm_from_long ((time((timet*)0) - scm_your_base)
-                       * (int)SCM_TIME_UNITS_PER_SECOND);
-#endif /* HAVE_FTIME */
+  return scm_from_long (get_internal_real_time ());
 }
 #undef FUNC_NAME
 
@@ -175,27 +234,35 @@ SCM_DEFINE (scm_times, "times", 0, 0, 0,
 {
   struct tms t;
   clock_t rv;
+  SCM factor;
 
   SCM result = scm_c_make_vector (5, SCM_UNDEFINED);
   rv = times (&t);
   if (rv == -1)
     SCM_SYSERROR;
-  SCM_SIMPLE_VECTOR_SET (result, 0, scm_from_long (rv));
-  SCM_SIMPLE_VECTOR_SET (result, 1, scm_from_long (t.tms_utime));
-  SCM_SIMPLE_VECTOR_SET (result, 2, scm_from_long (t.tms_stime));
-  SCM_SIMPLE_VECTOR_SET (result ,3, scm_from_long (t.tms_cutime));
-  SCM_SIMPLE_VECTOR_SET (result, 4, scm_from_long (t.tms_cstime));
+
+  factor = scm_quotient (scm_from_long (TIME_UNITS_PER_SECOND),
+                         scm_from_long (ticks_per_second));
+
+  SCM_SIMPLE_VECTOR_SET (result, 0,
+                         scm_product (scm_from_long (rv), factor));
+  SCM_SIMPLE_VECTOR_SET (result, 1,
+                         scm_product (scm_from_long (t.tms_utime), factor));
+  SCM_SIMPLE_VECTOR_SET (result, 2,
+                         scm_product (scm_from_long (t.tms_stime), factor));
+  SCM_SIMPLE_VECTOR_SET (result ,3,
+                         scm_product (scm_from_long (t.tms_cutime), factor));
+  SCM_SIMPLE_VECTOR_SET (result, 4,
+                         scm_product (scm_from_long (t.tms_cstime), factor));
   return result;
 }
 #undef FUNC_NAME
 #endif /* HAVE_TIMES */
 
-static long scm_my_base = 0;
-
 long
-scm_c_get_internal_run_time ()
+scm_c_get_internal_run_time (void)
 {
-  return mytime () - scm_my_base;
+  return get_internal_run_time ();
 }
 
 SCM_DEFINE (scm_get_internal_run_time, "get-internal-run-time", 0, 0, 0,
@@ -243,41 +310,18 @@ SCM_DEFINE (scm_gettimeofday, "gettimeofday", 0, 0, 0,
 {
 #ifdef HAVE_GETTIMEOFDAY
   struct timeval time;
-  int ret, err;
 
-  SCM_CRITICAL_SECTION_START;
-  ret = gettimeofday (&time, NULL);
-  err = errno;
-  SCM_CRITICAL_SECTION_END;
-  if (ret == -1)
-    {
-      errno = err;
-      SCM_SYSERROR;
-    }
+  if (gettimeofday (&time, NULL))
+    SCM_SYSERROR;
+  
   return scm_cons (scm_from_long (time.tv_sec),
                   scm_from_long (time.tv_usec));
 #else
-# ifdef HAVE_FTIME
-  struct timeb time;
-
-  ftime(&time);
-  return scm_cons (scm_from_long (time.time),
-                  scm_from_int (time.millitm * 1000));
-# else
-  timet timv;
-  int err;
-
-  SCM_CRITICAL_SECTION_START;
-  timv = time (NULL);
-  err = errno;
-  SCM_CRITICAL_SECTION_END;
-  if (timv == -1)
-    {
-      errno = err;
-      SCM_SYSERROR;
-    }
-  return scm_cons (scm_from_long (timv), scm_from_int (0));
-# endif
+  timet t = time (NULL);
+  if (errno)
+    SCM_SYSERROR;
+  else
+    return scm_cons (scm_from_long ((long)t), SCM_INUM0);
 #endif
 }
 #undef FUNC_NAME
@@ -798,13 +842,55 @@ scm_init_stime()
   scm_c_define ("internal-time-units-per-second",
                scm_from_long (SCM_TIME_UNITS_PER_SECOND));
 
-#ifdef HAVE_FTIME
-  if (!scm_your_base.time) ftime(&scm_your_base);
+  /* Init POSIX timers, and see if we can use them. */
+#ifdef HAVE_CLOCK_GETTIME
+  if (clock_gettime (CLOCK_REALTIME, &posix_real_time_base) == 0)
+    get_internal_real_time = get_internal_real_time_posix_timer;
+
+#ifdef _POSIX_CPUTIME
+  {
+    clockid_t dummy;
+    
+    /* Only use the _POSIX_CPUTIME clock if it's going to work across
+       CPUs. */
+    if (clock_getcpuclockid (0, &dummy) == 0 &&
+        clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &posix_run_time_base) == 0)
+      get_internal_run_time = get_internal_run_time_posix_timer;
+    else
+      errno = 0;
+  }
+#endif /* _POSIX_CPUTIME */
+#endif /* HAVE_CLOCKTIME */
+
+  /* If needed, init and use gettimeofday timer. */
+#ifdef HAVE_GETTIMEOFDAY
+  if (!get_internal_real_time
+      && gettimeofday (&gettimeofday_real_time_base, NULL) == 0)
+    get_internal_real_time = get_internal_real_time_gettimeofday;
+#endif
+
+  /* Init ticks_per_second for scm_times, and use times(2)-based
+     run-time timer if needed. */
+#ifdef HAVE_TIMES
+#ifdef _SC_CLK_TCK
+  ticks_per_second = sysconf (_SC_CLK_TCK);
 #else
-  if (!scm_your_base) time(&scm_your_base);
+  ticks_per_second = CLK_TCK;
 #endif
+  if (!get_internal_run_time)
+    get_internal_run_time = get_internal_run_time_times;
+#endif
+
+  if (!get_internal_real_time)
+    /* No POSIX timers, gettimeofday doesn't work... badness!  */
+    {
+      fallback_real_time_base = time (NULL);
+      get_internal_real_time = get_internal_real_time_fallback;
+    }
 
-  if (!scm_my_base) scm_my_base = mytime();
+  /* If we don't have a run-time timer, use real-time.  */
+  if (!get_internal_run_time)
+    get_internal_run_time = get_internal_real_time;
 
   scm_add_feature ("current-time");
 #include "libguile/stime.x"
diff --git a/libguile/stime.h b/libguile/stime.h
index 8b70cee..e41f797 100644
--- a/libguile/stime.h
+++ b/libguile/stime.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STIME_H
 #define SCM_STIME_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000, 2003, 2006, 2008 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000, 2003, 2006, 2008, 2011 Free 
Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -25,32 +25,10 @@
 
 #include "libguile/__scm.h"
 
-#include <unistd.h>  /* for sysconf */
-
 
 
-/* This should be figured out by autoconf.
-
-   sysconf(_SC_CLK_TCK) is best, since it's the actual running kernel, not
-   some compile-time CLK_TCK.  On glibc 2.3.2 CLK_TCK (when defined) is in
-   fact sysconf(_SC_CLK_TCK) anyway.
-
-   CLK_TCK is obsolete in POSIX.  In glibc 2.3.2 it's defined by default,
-   but if you define _GNU_SOURCE or _POSIX_C_SOURCE to get other features
-   then it goes away.  */
-
-#if ! defined(SCM_TIME_UNITS_PER_SECOND) && defined(_SC_CLK_TCK)
-#  define SCM_TIME_UNITS_PER_SECOND ((int) sysconf (_SC_CLK_TCK))
-#endif
-#if ! defined(SCM_TIME_UNITS_PER_SECOND) && defined(CLK_TCK)
-#  define SCM_TIME_UNITS_PER_SECOND ((int) CLK_TCK)
-#endif
-#if ! defined(SCM_TIME_UNITS_PER_SECOND) && defined(CLOCKS_PER_SEC)
-#  define SCM_TIME_UNITS_PER_SECOND ((int) CLOCKS_PER_SEC)
-#endif
-#if ! defined(SCM_TIME_UNITS_PER_SECOND)
-#  define SCM_TIME_UNITS_PER_SECOND 60
-#endif
+SCM_API long scm_c_time_units_per_second;
+#define SCM_TIME_UNITS_PER_SECOND scm_c_time_units_per_second
 
 
 SCM_API long scm_c_get_internal_run_time (void);
diff --git a/meta/guile-2.0-uninstalled.pc.in b/meta/guile-2.0-uninstalled.pc.in
index 9cc1aaf..6d8c36b 100644
--- a/meta/guile-2.0-uninstalled.pc.in
+++ b/meta/guile-2.0-uninstalled.pc.in
@@ -5,5 +5,5 @@ Name: GNU Guile (uninstalled)
 Description: GNU's Ubiquitous Intelligent Language for Extension (uninstalled)
 Version: @GUILE_VERSION@
 Libs: -L${builddir}/libguile address@hidden@ @BDW_GC_LIBS@
-Libs.private: @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@
+Libs.private: @LIB_CLOCK_GETTIME@ @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@
 Cflags: -I${srcdir} -I${builddir} @GUILE_CFLAGS@ @BDW_GC_CFLAGS@
diff --git a/meta/guile-2.0.pc.in b/meta/guile-2.0.pc.in
index f76dd01..ecca778 100644
--- a/meta/guile-2.0.pc.in
+++ b/meta/guile-2.0.pc.in
@@ -15,5 +15,5 @@ Name: GNU Guile
 Description: GNU's Ubiquitous Intelligent Language for Extension
 Version: @GUILE_VERSION@
 Libs: -L${libdir} address@hidden@ @BDW_GC_LIBS@
-Libs.private: @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@
+Libs.private: @LIB_CLOCK_GETTIME@ @LIBGMP@ @LIBLTDL@ @LIBFFI_LIBS@ @GUILE_LIBS@
 Cflags: -I${pkgincludedir}/@GUILE_EFFECTIVE_VERSION@ @GUILE_CFLAGS@ 
@BDW_GC_CFLAGS@


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]