Thread overview
ld.lld: warning: Linking two modules of different data layouts for x86_64-linux
Jul 13, 2020
Innot Sagg
Jul 13, 2020
kinke
Jul 13, 2020
Innot Sagg
July 13, 2020
I build android x86-64 project with lto, get this error:

ld.lld: warning: Linking two modules of different data layouts: '/d/lib/libpcre.a(pcre_exec.c.o at 173954)' is 'e-m:e-i64:64-f80:128-n8:16:32:64-S128' whereas 'ld-temp.o' is 'e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128'


The c lib is build with:
x86_64-linux-android21-clang --target=x86_64-unknown-linux-android21 -fPIC -flto=full


The ldc:

ldmd2 -g -gc -O0 -L--export-dynamic -mtriple=x86_64-unknown-linux-android21 -linker=lld -flto=full -betterC -L-lpcre


aarch64-unknown-linux-android21 or armv7a-unknown-linux-android21 have no problem.

should I change target and mtriple to fix this ?
July 13, 2020
On Monday, 13 July 2020 at 14:19:25 UTC, Innot Sagg wrote:
> I build android x86-64 project with lto, get this error:
>
> ld.lld: warning: Linking two modules of different data layouts: '/d/lib/libpcre.a(pcre_exec.c.o at 173954)' is 'e-m:e-i64:64-f80:128-n8:16:32:64-S128' whereas 'ld-temp.o' is 'e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128'

This is probably caused by an (seemingly irrelevant) LLVM change in the meantime (https://reviews.llvm.org/D64931), which isn't in the LLVM version used by the Android NDK yet, but in LLVM 10 used by our prebuilt LDC packages.
July 13, 2020
On Monday, 13 July 2020 at 15:35:30 UTC, kinke wrote:
> This is probably caused by an (seemingly irrelevant) LLVM change in the meantime (https://reviews.llvm.org/D64931), which isn't in the LLVM version used by the Android NDK yet, but in LLVM 10 used by our prebuilt LDC packages.

Thanks for explain. will try ldc with old llvm.