Files
Khem Raj 56c550a48e lftp: fix build with clang, lld and GCC 16 libstdc++
lftp 4.9.3 bundles gnulib sources that fail to build with the OpenEmbedded
clang + lld toolchain. Carry a single patch with the gnulib compatibility
fixes:

1. Single-argument static_assert (lib/dirent.in.h, lib/uchar.in.h) is a
   C++17 feature; clang in its default C++14 mode rejects it with
   "static_assert with no message is a C++17 extension". Add a message.
   Reported upstream: https://github.com/lavv17/lftp/issues/766

2. lib/stdlib.in.h pre-includes <string> to pre-instantiate std::strtoull
   before the "#define strtoull rpl_strtoull" macro fires, but guarded the
   workaround with "&& !defined __clang__" so it never triggered under
   clang + libstdc++, rewriting std::strtoull to the non-existent
   std::rpl_strtoull. Extend the guard to cover clang.

3. After gnulib split md5.c/sha1.c into primary + -stream.c files, both
   define GL_OPENSSL_INLINE to _GL_EXTERN_INLINE before including the
   header, so with the OpenSSL md5/sha1 backends both translation units
   emit out-of-line wrapper copies and lld fails with duplicate symbol
   errors. Drop the override from the -stream.c files.

Consolidates the three previously separate patches into one; verified by
building lftp for qemux86-64 with clang + lld (the duplicate-symbol link
failure reproduces without the patch and is resolved with it).

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-26 19:59:33 -07:00
..