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 <locutusofb...@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 via email to