duckdb / duckdb_aws

MIT License
34 stars 12 forks source link

Support for arm64_gcc4 #33

Closed blackrez closed 4 months ago

blackrez commented 4 months ago

After https://github.com/duckdb/duckdb/pull/10137 I believe all extension will be built with arm64_gcc4 support but I see this is not the case.

Will extensions have the support of this architecture or not ?

samansmink commented 4 months ago

Hi @blackrez!

I believe all extension will be built with arm64_gcc4

this is not the case, as the PR states, we work around the fact that linux_arm64_gcc4 extensions are not distributed, by distributing linux_arm64 binaries for Python. To use these, ensure you are on an OS with GLIBC >= 2.28

blackrez commented 4 months ago

Ok that sad, in the case of rust on lambda, when we use cross-compilation with zig it detect that is linux_arm64_gcc4. I don't know if it's an issue on zig or on how glibc is detected in duckDB.

samansmink commented 4 months ago

@blackrez well detection of _gcc4 postfix in platform tag is done as follows:

#if !defined(_GLIBCXX_USE_CXX11_ABI) || _GLIBCXX_USE_CXX11_ABI == 0
    if (os == "linux") {
        postfix = "_gcc4";
    }
#endif

For AWS Lambdas, check out https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html. For all ARM Amazon Linux 2 based runtimes the linux_arm64_gcc4 tag will be used, whereas for the Amazon Linux 2023 ones they should be linux_arm64 builds

blackrez commented 4 months ago

Thanks for pointing the detection, for AWS Lambda I already use Amazon Linux 2023 but it is the zig crossplatform build that is detected as gcc4.