Port fix: Windows does not allow read-only mappings > file's size
[babeltrace.git] / configure.ac
index 713903cb493ec461f6d9ad2e8a040e337528321f..d15957d665808de365ebab4c5e1b24de0582cfee 100644 (file)
@@ -159,6 +159,24 @@ AC_CHECK_HEADERS([ \
 AX_APPEND_LINK_FLAGS([-Wl,--no-as-needed], [LD_NO_AS_NEEDED])
 AC_SUBST([LD_NO_AS_NEEDED])
 
+# Check if the linker supports whole-archive
+AX_CHECK_LINK_FLAG([-Wl,--whole-archive,--no-whole-archive],
+  [
+    AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,--whole-archive,])
+    AC_SUBST([LD_NO_WHOLE_ARCHIVE], [,--no-whole-archive])
+  ],[
+    # Fallback to force_load for the macOS linker
+    AX_CHECK_LINK_FLAG([-Wl,-force_load],
+      [
+        AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,-force_load,])
+        AC_SUBST([LD_NO_WHOLE_ARCHIVE], [])
+      ],[
+        AC_MSG_WARN([Can't find a linker option to force the inclusion of the static plugin archive objects.])
+      ]
+    )
+  ]
+)
+
 # Initialize and configure libtool
 LT_INIT([win32-dll])
 
@@ -244,7 +262,6 @@ AC_CHECK_FUNCS([ \
        dup2 \
        ftruncate \
        gethostbyname \
-       gethostname \
        gettimeofday \
        localtime_r \
        memchr \
@@ -265,7 +282,6 @@ AC_CHECK_FUNCS([ \
        strtoul \
        strtoull \
        tzset \
-       uname \
 ])
 
 # AC_FUNC_MALLOC causes problems when cross-compiling.
@@ -479,7 +495,7 @@ AS_IF([test "x$enable_built_in_python_plugin_support" = xyes],
 )
 
 
-# Check for conflicting optionnal features user choices
+# Check for conflicting optional features user choices
 
 AS_IF([test "x$enable_python_bindings" = xno],
   [
@@ -569,11 +585,13 @@ AS_IF([test "x$enable_python_bindings_tests" = xyes],
 AS_IF([test "x$enable_debug_info" = xyes],
   [
     # Check if libelf and libdw are present
-    AC_CHECK_LIB([elf], [elf_version], [], [AC_MSG_ERROR(Missing libelf (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
-    AC_CHECK_LIB([dw], [dwarf_begin], [], [AC_MSG_ERROR(Missing libdw (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
+    AC_CHECK_LIB([elf], [elf_version], [:], [AC_MSG_ERROR(Missing libelf (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
+    AC_CHECK_LIB([dw], [dwarf_begin], [:], [AC_MSG_ERROR(Missing libdw (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
     BT_LIB_ELFUTILS([0], [154], [:], [AC_MSG_ERROR(elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.)])
+    ELFUTILS_LIBS="-lelf -ldw"
   ]
 )
+AC_SUBST([ELFUTILS_LIBS])
 
 AS_IF([test "x$enable_api_doc" = "xyes"],
   [
@@ -604,21 +622,42 @@ AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include -include config
 AC_SUBST(AM_CPPFLAGS)
 
 # Add glib to global link libs
-LIBS="$GLIB_LIBS"
+LIBS="$LIBS $GLIB_LIBS"
+
+# Check that the current size_t matches the size that glib thinks it should
+# be. This catches problems on multi-arch where people try to do a 32-bit
+# build while pointing at 64-bit glib headers. This is a common error because
+# glib.h is not platform specific but it includes glibconfig.h which is and
+# is usually installed in a non-standard path.
+
+save_CFLAGS=${CFLAGS}
+CFLAGS="${CFLAGS} ${AM_CFLAGS}"
+AC_COMPILE_IFELSE([
+  AC_LANG_PROGRAM([dnl
+#include <glib.h>
+#include <unistd.h>
+  ], [dnl
+G_STATIC_ASSERT(sizeof(size_t) == GLIB_SIZEOF_SIZE_T);
+  ])
+],[:],[
+  AC_MSG_ERROR([dnl
+sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T. You probably need to set
+PKG_CONFIG_LIBDIR to point to the right pkg-config files for your build
+target.
+  ])
+])
+CFLAGS=${save_CFLAGS}
 
 # Abuse autoconf's AC_ARG_PROGRAM output variable 'program_transform_name'
 # to rename babeltrace.bin to babeltrace at install time.
 program_transform_name="s&babeltrace\.bin&babeltrace&;s&babeltrace-log\.bin&babeltrace-log&;$program_transform_name"
 AC_SUBST(program_transform_name)
 
-
-       #TODO: removed, work in progress
-       #bindings/python/Makefile
-       #bindings/python/babeltrace/Makefile
-       #bindings/python/bt2/Makefile
-       #bindings/python/bt2/__init__.py
 AC_CONFIG_FILES([
        Makefile
+       bindings/python/Makefile
+       bindings/python/bt2/Makefile
+       bindings/python/bt2/__init__.py
        common/Makefile
        compat/Makefile
        cli/Makefile
@@ -644,12 +683,14 @@ AC_CONFIG_FILES([
        tests/lib/Makefile
        tests/lib/writer/Makefile
        tests/lib/test-plugin-plugins/Makefile
+       tests/utils/common.sh
        tests/utils/Makefile
        tests/utils/tap/Makefile
        tests/bindings/Makefile
        tests/bindings/python/Makefile
        tests/bindings/python/bt2/Makefile
        tests/plugins/Makefile
+       tests/python-plugin-provider/Makefile
        extras/Makefile
        extras/valgrind/Makefile
        plugins/Makefile
@@ -684,17 +725,21 @@ AC_CONFIG_FILES([tests/cli/test_packet_seq_num], [chmod +x tests/cli/test_packet
 AC_CONFIG_FILES([tests/cli/test_trace_copy], [chmod +x tests/cli/test_trace_copy])
 AC_CONFIG_FILES([tests/cli/test_trace_read], [chmod +x tests/cli/test_trace_read])
 AC_CONFIG_FILES([tests/cli/test_trimmer], [chmod +x tests/cli/test_trimmer])
-AC_CONFIG_FILES([tests/lib/test_bin_info_complete], [chmod +x tests/lib/test_bin_info_complete])
 AC_CONFIG_FILES([tests/lib/test_ctf_writer_complete], [chmod +x tests/lib/test_ctf_writer_complete])
-AC_CONFIG_FILES([tests/lib/test_dwarf_complete], [chmod +x tests/lib/test_dwarf_complete])
 AC_CONFIG_FILES([tests/lib/test_plugin_complete], [chmod +x tests/lib/test_plugin_complete])
 AC_CONFIG_FILES([tests/lib/writer/bt_python_helper.py])
 AC_CONFIG_FILES([tests/lib/writer/test_ctf_writer_empty_packet.py])
 AC_CONFIG_FILES([tests/lib/writer/test_ctf_writer_no_packet_context.py])
 AC_CONFIG_FILES([tests/plugins/test-utils-muxer-complete], [chmod +x tests/plugins/test-utils-muxer-complete])
+AC_CONFIG_FILES([tests/plugins/test_dwarf_complete], [chmod +x tests/plugins/test_dwarf_complete])
+AC_CONFIG_FILES([tests/plugins/test_bin_info_complete], [chmod +x tests/plugins/test_bin_info_complete])
+
+AS_IF([test "x$enable_python_bindings_tests" = xyes],
+  [AC_CONFIG_FILES([tests/bindings/python/bt2/test_python_bt2], [chmod +x tests/bindings/python/bt2/test_python_bt2])]
+)
 
-AS_IF([test "x$enable_python" = xyes],
-  [AC_CONFIG_FILES([tests/bindings/python/bt2/testall.sh], [chmod +x tests/bindings/python/bt2/testall.sh])]
+AS_IF([test "x$enable_python_plugins" = "xyes"],
+  [AC_CONFIG_FILES([tests/python-plugin-provider/test.sh], [chmod +x tests/python-plugin-provider/test.sh])]
 )
 
 AC_OUTPUT
This page took 0.024565 seconds and 4 git commands to generate.