Bug#1069017: rtags: FTBFS due to time64_t changes
Hi Gianfranco,
thanks for the patch with the fix. I will upload new version with our patch included.
Best regards,
Denis
On Mon, Apr 15, 2024 at 09:00:06AM +0200, Gianfranco Costamagna wrote:
> Package: rtags
> Version: 2.38-9
> Severity: serious
> Tags: patch
>
> Hello maintainer, I fixed a FTBFS on armhf due to time64_t. The regex was causing "=64" to be stripped from _FILE_OFFSET_BITS, causing cmake to fail to build test code.
>
> With this regex the example test code of clang fails in cmake, causing an error.
> this is due to -I/usr/lib/llvm-18/include -std=c++17 -fno-exceptions -funwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
> becoming:
> -I/usr/lib/llvm-18/include;-D_GNU_SOURCE;-D_FILE_OFFSET_BITS;-D_LARGEFILE_SOURCE;-D_FILE_OFFSET_BITS;-D__STDC_CONSTANT_MACROS;-D__STDC_FORMAT_MACROS;-D__STDC_LIMIT_MACROS
>
> If you undefine _FILE_OFFSET_BITS and you enable _TIME_BITS=64 you get a FTBFS
>
> /usr/include/features-time64.h:26:5: error: #error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
> 26 | # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
>
>
> * Fix regex on find clang without stripping defines content.
>
>
> Thanks for considering the patch.
> diff -Nru rtags-2.38/debian/patches/fix-regex.patch rtags-2.38/debian/patches/fix-regex.patch
> --- rtags-2.38/debian/patches/fix-regex.patch 1970-01-01 01:00:00.000000000 +0100
> +++ rtags-2.38/debian/patches/fix-regex.patch 2024-04-15 08:50:11.000000000 +0200
> @@ -0,0 +1,18 @@
> +Description:
> + * Add -D_FILE_OFFSET_BITS=64 to fix FTBFS on armhf
> + (bad regex on find clang making build fail)
> +Author: Gianfranco Costamagna <locutusofborg@debian.org>
> +Forwarded: https://github.com/Andersbakken/rtags/pull/1439
> +Last-Update: 2024-04-15
> +
> +--- rtags-2.38.orig/cmake/FindLibClang.cmake
> ++++ rtags-2.38/cmake/FindLibClang.cmake
> +@@ -88,7 +88,7 @@ if (NOT LIBCLANG_CXXFLAGS)
> + endif ()
> + set(LIBCLANG_CXXFLAGS "-I${LIBCLANG_CXXFLAGS}")
> + endif ()
> +- string(REGEX MATCHALL "-(D__?[a-zA-Z_]*|I([^\" ]+|\"[^\"]+\"))" LIBCLANG_CXXFLAGS "${LIBCLANG_CXXFLAGS}")
> ++ string(REGEX MATCHALL "-(D__?[a-zA-Z_=0-9]*|I([^\" ]+|\"[^\"]+\"))" LIBCLANG_CXXFLAGS "${LIBCLANG_CXXFLAGS}")
> + string(REGEX REPLACE ";" " " LIBCLANG_CXXFLAGS "${LIBCLANG_CXXFLAGS}")
> + set(LIBCLANG_CXXFLAGS ${LIBCLANG_CXXFLAGS} CACHE STRING "The LLVM C++ compiler flags needed to compile LLVM based applications.")
> + unset(LIBCLANG_CXXFLAGS_HACK_CMAKECACHE_DOT_TEXT_BULLSHIT CACHE)
> diff -Nru rtags-2.38/debian/patches/series rtags-2.38/debian/patches/series
> --- rtags-2.38/debian/patches/series 2023-08-29 19:36:08.000000000 +0200
> +++ rtags-2.38/debian/patches/series 2024-04-15 08:49:15.000000000 +0200
> @@ -15,3 +15,4 @@
> 0015-expand-range-of-llvm-versions.patch
> 0016-always-finish-the-connection.patch
> 0017-Add-when-argument-to-define-obsolete-function-alias.patch
> +fix-regex.patch
Reply to: