]> git.ipfire.org Git - people/ms/gcc.git/commitdiff
runtime: call timer functions via syscall
authorIan Lance Taylor <iant@golang.org>
Sun, 13 Feb 2022 01:12:41 +0000 (17:12 -0800)
committerIan Lance Taylor <iant@golang.org>
Sun, 13 Feb 2022 19:03:45 +0000 (11:03 -0800)
It turns out to be painful to require linking against -lrt on
GNU/Linux, as that makes it harder to link Go code into C programs.
Instead just call the timer syscalls directly.  That is what the
upstream library does anyhow.

gcc/go/
* gospec.cc: Revert 2022-02-09 change:
(RTLIB, RT_LIBRARY): Don't define.
(lang_specific_driver): Don't add -lrt if linking statically
on GNU/Linux.

gotools/
* configure.ac: Revert 2022-02-09 change:
(RT_LIBS): Don't define.
* Makefile.am (check-runtime): Don't set GOLIBS to $(RT_LIBS).
* configure, Makefile.in: Regenerate.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/385475

12 files changed:
gcc/go/gofrontend/MERGE
gcc/go/gospec.cc
gotools/Makefile.am
gotools/Makefile.in
gotools/configure
gotools/configure.ac
libgo/Makefile.am
libgo/Makefile.in
libgo/configure
libgo/configure.ac
libgo/go/runtime/os_linux.go
libgo/testsuite/Makefile.in

index 02a6e1d661dc27a64e2d4d898dd1f96726453901..745132a3d9d16a93be2a66c7d474dfb63d313671 100644 (file)
@@ -1,4 +1,4 @@
-7f8fee099d6de4a5a857765e0ddfae356ead554c
+0af68c0552341a44f1fb12301f9eff954b9dde88
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index ba7ba4ea09d8e6d12e1ea2407d4463a053822c3f..df92b62d8e6e8e7381828712820d0114482a651d 100644 (file)
@@ -29,12 +29,10 @@ along with GCC; see the file COPYING3.  If not see
 #define MATHLIB                (1<<2)
 /* This bit is set if they did `-lpthread'.  */
 #define THREADLIB      (1<<3)
-/* This bit is set if they did `-lrt'.  */
-#define RTLIB          (1<<4)
 /* This bit is set if they did `-lc'.  */
-#define WITHLIBC       (1<<5)
+#define WITHLIBC       (1<<4)
 /* Skip this option.  */
-#define SKIPOPT                (1<<6)
+#define SKIPOPT                (1<<5)
 
 #ifndef MATH_LIBRARY
 #define MATH_LIBRARY "m"
@@ -46,8 +44,6 @@ along with GCC; see the file COPYING3.  If not see
 #define THREAD_LIBRARY "pthread"
 #define THREAD_LIBRARY_PROFILE THREAD_LIBRARY
 
-#define RT_LIBRARY "rt"
-
 #define LIBGO "go"
 #define LIBGO_PROFILE LIBGO
 #define LIBGOBEGIN "gobegin"
@@ -78,9 +74,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
   /* "-lpthread" if it appears on the command line.  */
   const struct cl_decoded_option *saw_thread = 0;
 
-  /* "-lrt" if it appears on the command line.  */
-  const struct cl_decoded_option *saw_rt = 0;
-
   /* "-lc" if it appears on the command line.  */
   const struct cl_decoded_option *saw_libc = 0;
 
@@ -91,9 +84,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
   /* Whether we need the thread library.  */
   int need_thread = 0;
 
-  /* Whether we need the rt library.  */
-  int need_rt = 0;
-
   /* By default, we throw on the math library if we have one.  */
   int need_math = (MATH_LIBRARY[0] != '\0');
 
@@ -166,8 +156,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
            }
          else if (strcmp (arg, THREAD_LIBRARY) == 0)
            args[i] |= THREADLIB;
-         else if (strcmp (arg, RT_LIBRARY) == 0)
-           args[i] |= RTLIB;
          else if (strcmp (arg, "c") == 0)
            args[i] |= WITHLIBC;
          else
@@ -272,7 +260,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
 #endif
 
   /* Make sure to have room for the trailing NULL argument.  */
-  num_args = argc + need_math + shared_libgcc + (library > 0) * 6 + 10;
+  num_args = argc + need_math + shared_libgcc + (library > 0) * 5 + 10;
   new_decoded_options = XNEWVEC (struct cl_decoded_option, num_args);
 
   i = 0;
@@ -326,12 +314,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
          saw_thread = &decoded_options[i];
        }
 
-      if (!saw_rt && (args[i] & RTLIB) && library > 0)
-       {
-         --j;
-         saw_rt = &decoded_options[i];
-       }
-
       if (!saw_libc && (args[i] & WITHLIBC) && library > 0)
        {
          --j;
@@ -413,23 +395,9 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
 #endif
 
       /* When linking libgo statically we also need to link with the
-        pthread and (on GNU/Linux) the rt library.  */
+        pthread library.  */
       if (library > 1 || static_link)
-       {
-         need_thread = 1;
-         if (strstr (DEFAULT_TARGET_MACHINE, "linux") != NULL)
-           need_rt = 1;
-       }
-    }
-
-  if (saw_rt)
-    new_decoded_options[j++] = *saw_rt;
-  else if (library > 0 && need_rt)
-    {
-      generate_option (OPT_l, RT_LIBRARY, 1, CL_DRIVER,
-                      &new_decoded_options[j]);
-      added_libraries++;
-      j++;
+       need_thread = 1;
     }
 
   if (saw_thread)
index 46481cb51739f2352cc9f04bbb47241045b16984..7b5302990f83985aa426d13f3cd30ac8aa5bd999 100644 (file)
@@ -248,14 +248,12 @@ check-runtime: go$(EXEEXT) $(noinst_PROGRAMS) check-head check-gccgo check-gcc
        GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
        GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
        files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
-       echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} GOLIBS='$(RT_LIBS)' $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
+       echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
        $(CHECK_ENV) \
        GC="$${GCCGO} -fgo-compiling-runtime"; \
        export GC; \
        GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
        GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
-       GOLIBS="$(RT_LIBS)"; \
-       export GOLIBS; \
        files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
        $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles="$${files}" $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v >> runtime-testlog 2>&1 || echo "--- $${fl}: go test runtime (0.00s)" >> runtime-testlog
        grep '^--- ' runtime-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2
index 1bcf8276ca3aee08756c60b5b558f9f6cb12bd4f..2783b91ef4be4d9acf676acb3a48a14c0d0879e9 100644 (file)
@@ -269,7 +269,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
 PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
-RT_LIBS = @RT_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
@@ -920,14 +919,12 @@ mostlyclean-local:
 @NATIVE_TRUE@  GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
 @NATIVE_TRUE@  GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
 @NATIVE_TRUE@  files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
-@NATIVE_TRUE@  echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} GOLIBS='$(RT_LIBS)' $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
+@NATIVE_TRUE@  echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
 @NATIVE_TRUE@  $(CHECK_ENV) \
 @NATIVE_TRUE@  GC="$${GCCGO} -fgo-compiling-runtime"; \
 @NATIVE_TRUE@  export GC; \
 @NATIVE_TRUE@  GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
 @NATIVE_TRUE@  GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
-@NATIVE_TRUE@  GOLIBS="$(RT_LIBS)"; \
-@NATIVE_TRUE@  export GOLIBS; \
 @NATIVE_TRUE@  files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
 @NATIVE_TRUE@  $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles="$${files}" $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v >> runtime-testlog 2>&1 || echo "--- $${fl}: go test runtime (0.00s)" >> runtime-testlog
 @NATIVE_TRUE@  grep '^--- ' runtime-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2
index 5b667227de2d3098af6a0be03ecb7454a4c6a6cd..ff71d2ae88085ff1ad3f5d7f671dd96b08bdd0ef 100755 (executable)
@@ -586,7 +586,6 @@ ac_subst_vars='am__EXEEXT_FALSE
 am__EXEEXT_TRUE
 LTLIBOBJS
 LIBOBJS
-RT_LIBS
 NET_LIBS
 NATIVE_FALSE
 NATIVE_TRUE
@@ -4212,12 +4211,6 @@ if test "$ac_res" != no; then :
 fi
 
 
-RT_LIBS=
-case ${target} in
-  *-*-linux*) RT_LIBS=-lrt ;;
-esac
-
-
 ac_config_files="$ac_config_files Makefile"
 
 
index bf2395f7cf6ae29a91388f93325261f84fa7872f..f0a73eca782c949491757d26d3ecdafea80c6fa6 100644 (file)
@@ -85,15 +85,6 @@ dnl Test if -lrt is required for sched_yield and/or nanosleep.
 AC_SEARCH_LIBS([sched_yield], [rt])
 AC_SEARCH_LIBS([nanosleep], [rt])
 
-dnl On GNU/Linux we need to link the runtime package against -lrt.
-dnl This is a target test, unlike sched_yield/nanosleep above
-dnl which is a host test.
-RT_LIBS=
-case ${target} in
-  *-*-linux*) RT_LIBS=-lrt ;;
-esac
-AC_SUBST(RT_LIBS)
-
 AC_CONFIG_FILES(Makefile)
 
 AC_OUTPUT
index be889f2a984d91b9e9f4b4415037da235a4067ea..9318f38714a9ae7fe73c56539ee8caad3e1e6779 100644 (file)
@@ -832,8 +832,7 @@ libgo_ldflags = \
 
 libgo_libadd = \
        $(libgo_go_objs) ../libbacktrace/libbacktrace.la \
-       $(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) \
-       $(NET_LIBS) $(RT_LIBS)
+       $(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
 
 libgo_la_SOURCES = $(runtime_files)
 libgo_la_LDFLAGS = $(libgo_ldflags)
@@ -924,7 +923,7 @@ GOBENCH =
 CHECK = \
        GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
        export GC; \
-       GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(RT_LIBS) $(LIBS)"; \
+       GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
        export GOLIBS; \
        RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
        export RUNTESTFLAGS; \
index 216be43f14a0c471b7a2ac6d720b911a3e261fce..642688e9daed427239cfc3204cf8b5f9b1bd6819 100644 (file)
@@ -233,8 +233,7 @@ am__DEPENDENCIES_4 =
 am__DEPENDENCIES_5 = $(am__DEPENDENCIES_3) \
        ../libbacktrace/libbacktrace.la $(am__DEPENDENCIES_4) \
        $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) \
-       $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) \
-       $(am__DEPENDENCIES_4)
+       $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4)
 libgo_llgo_la_DEPENDENCIES = $(am__DEPENDENCIES_5)
 @LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_TRUE@am__objects_1 =  \
 @LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_TRUE@       runtime/go-context.lo
@@ -466,7 +465,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
 PTHREAD_LIBS = @PTHREAD_LIBS@
 RANLIB = @RANLIB@
-RT_LIBS = @RT_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
@@ -972,8 +970,7 @@ libgo_ldflags = \
 
 libgo_libadd = \
        $(libgo_go_objs) ../libbacktrace/libbacktrace.la \
-       $(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) \
-       $(NET_LIBS) $(RT_LIBS)
+       $(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
 
 libgo_la_SOURCES = $(runtime_files)
 libgo_la_LDFLAGS = $(libgo_ldflags)
@@ -1047,7 +1044,7 @@ GOBENCH =
 CHECK = \
        GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
        export GC; \
-       GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(RT_LIBS) $(LIBS)"; \
+       GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
        export GOLIBS; \
        RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
        export RUNTESTFLAGS; \
index e24036342810a72885dbd1013e11a9652e896e0e..ffe17c9be55db14336293f3e3ac9bfdcef6d7b66 100755 (executable)
@@ -649,7 +649,6 @@ HAVE_SYS_MMAN_H_FALSE
 HAVE_SYS_MMAN_H_TRUE
 PTHREAD_LIBS
 PTHREAD_CFLAGS
-RT_LIBS
 NET_LIBS
 MATH_LIBS
 GOC_IS_LLGO_FALSE
@@ -11545,7 +11544,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11548 "configure"
+#line 11547 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11651,7 +11650,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11654 "configure"
+#line 11653 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14748,12 +14747,6 @@ $as_echo "$libgo_cv_lib_sockets" >&6; }
 NET_LIBS="$libgo_cv_lib_sockets"
 
 
-RT_LIBS=
-case ${host} in
-  *-*-linux*) RT_LIBS=-lrt ;;
-esac
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is supported" >&5
 $as_echo_n "checking whether -pthread is supported... " >&6; }
 if ${libgo_cv_lib_pthread+:} false; then :
index 1b44b226f62e53e3a56bac91005b25a1afc806a1..7e2b98ba67c83d5cb5179edb68a8deb20331b39c 100644 (file)
@@ -549,12 +549,6 @@ AC_CACHE_CHECK([for socket libraries], libgo_cv_lib_sockets,
 NET_LIBS="$libgo_cv_lib_sockets"
 AC_SUBST(NET_LIBS)
 
-RT_LIBS=
-case ${host} in
-  *-*-linux*) RT_LIBS=-lrt ;;
-esac
-AC_SUBST(RT_LIBS)
-
 dnl Test whether the compiler supports the -pthread option.
 AC_CACHE_CHECK([whether -pthread is supported],
 [libgo_cv_lib_pthread],
index 6ffd8980c5f33484efce532ba0a1618a4011b984..96fb178870e674ead97b4ee4c00f4d567952ca1f 100644 (file)
@@ -18,7 +18,7 @@ type mOS struct {
        // creates and manages its own timer, and these fields are read and written
        // only by this thread. But because some of the reads on profileTimerValid
        // are in signal handling code, access to that field uses atomic operations.
-       profileTimer      uintptr
+       profileTimer      int32
        profileTimerValid uint32
 }
 
@@ -243,16 +243,17 @@ func osinit() {
        physHugePageSize = getHugePageSize()
 }
 
-//go:noescape
-//extern-sysinfo timer_create
-func timer_create(clockid int32, sevp *_sigevent, timerid *uintptr) int32
+func timer_create(clockid int32, sevp *_sigevent, timerid *int32) int32 {
+       return int32(syscall(_SYS_timer_create, uintptr(clockid), uintptr(unsafe.Pointer(sevp)), uintptr(unsafe.Pointer(timerid)), 0, 0, 0))
+}
 
-//go:noescape
-//extern-sysinfo timer_settime
-func timer_settime(timerid uintptr, flags int32, new, old *_itimerspec) int32
+func timer_settime(timerid int32, flags int32, new, old *_itimerspec) int32 {
+       return int32(syscall(_SYS_timer_settime, uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), uintptr(unsafe.Pointer(old)), 0, 0))
+}
 
-//extern-sysinfo timer_delete
-func timer_delete(timerid uintptr) int32
+func timer_delete(timerid int32) int32 {
+       return int32(syscall(_SYS_timer_delete, uintptr(timerid), 0, 0, 0, 0, 0))
+}
 
 // go118UseTimerCreateProfiler enables the per-thread CPU profiler.
 const go118UseTimerCreateProfiler = true
@@ -360,7 +361,7 @@ func setThreadCPUProfiler(hz int32) {
        spec.it_value.setNsec(1 + int64(fastrandn(uint32(1e9/hz))))
        spec.it_interval.setNsec(1e9 / int64(hz))
 
-       var timerid uintptr
+       var timerid int32
        var sevp _sigevent
        sevp.sigev_notify = _SIGEV_THREAD_ID
        sevp.sigev_signo = _SIGPROF
index 6e143fa3bab87d29e4646f047bd888fd04baf9ec..7869265851cb5f1b41f218f5811b7c6d584e9473 100644 (file)
@@ -215,7 +215,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
 PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
 PTHREAD_LIBS = @PTHREAD_LIBS@
 RANLIB = @RANLIB@
-RT_LIBS = @RT_LIBS@
 SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@