32位软件包指南
外观
传统的 32位 软件可以在另一种原生架构(例如 x86_64)的机器上构建和安装。本文介绍了此类软件包的制作方式和约定。
包命名
- 原生软件包的 32位版本 请使用 lib32- 作为前缀。
- 软件包描述 (Package descriptions) 应将其与原生版本区分开,例如:
pkgdesc+=" (32-bit)"。
变量与参数
lib32
在 PKGBUILD 中指定这些 bash 变量,以告知编译器输出 32 位代码
export CFLAGS+=" -m32" export CXXFLAGS+=" -m32" export LDFLAGS+=" -m32" export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'
文件放置
确保 lib32 软件包文件不与原生软件包文件冲突,并包含所有必要的文件(如特定架构的头文件)。例如,如果软件包使用 GNU Autoconf 构建,请在 configure 中指定以下内容
--program-suffix="-32" \
--lib{exec,}dir=/usr/lib32 \
--includedir=/usr/include/"$pkgbase"32 \
--build=i686-pc-linux-gnu
如果软件包使用 Meson 构建,请在 arch-meson 中指定以下内容
--cross-file lib32