[debian-mysql] Bug#920365: Bug#920365: Bug#920365: mariadb_config: improve cross compilation support

Helmut Grohne helmut at subdivi.de
Tue Sep 29 21:56:35 BST 2020


Hi Otto,

On Tue, Sep 29, 2020 at 11:46:26PM +0300, Otto Kekäläinen wrote:
> Multiarch-hinter says: libmariadbd-dev conflicts on
> /usr/include/mariadb/server/my_config.h on any two of amd64, arm64,
> armel, armhf, and 5 more
> 
> I don't understand this, since my_config.h is supposed to be an ASCII
> file and identical to all archs.
> 
> Running in Debian unstable to verify the file contents:
> 
> apt install libmariadbd-dev
> cat /usr/include/mariadb/server/my_config.h

$ wget http://deb.debian.org/debian/pool/main/m/mariadb-10.5/libmariadbd-dev_10.5.5-1_amd64.deb
...
$ wget http://deb.debian.org/debian/pool/main/m/mariadb-10.5/libmariadbd-dev_10.5.5-1_arm64.deb
...
$ dpkg-deb -x libmariadbd-dev_10.5.5-1_amd64.deb amd64
$ dpkg-deb -x libmariadbd-dev_10.5.5-1_arm64.deb arm64
$ diff -u a*64/usr/include/mariadb/server/my_config.h
--- amd64/usr/include/mariadb/server/my_config.h        2020-09-25 18:56:59.000000000 +0200
+++ arm64/usr/include/mariadb/server/my_config.h        2020-09-25 18:56:59.000000000 +0200
@@ -105,9 +105,9 @@
 /* #undef HAVE_CRC32_VPMSUM */
 
 /* Support ARMv8 crc + crypto  */
-/* #undef HAVE_ARMV8_CRC */
-/* #undef HAVE_ARMV8_CRYPTO */
-/* #undef HAVE_ARMV8_CRC_CRYPTO_INTRINSICS */
+#define HAVE_ARMV8_CRC 1
+#define HAVE_ARMV8_CRYPTO 1
+#define HAVE_ARMV8_CRC_CRYPTO_INTRINSICS 1
 
 /* Does "struct timespec" have a "sec" and "nsec" field? */
 /* #undef HAVE_TIMESPEC_TS_SEC */
@@ -395,8 +395,8 @@
 #define STACK_DIRECTION -1
 
 #define SYSTEM_TYPE "debian-linux-gnu"
-#define MACHINE_TYPE "x86_64"
-#define DEFAULT_MACHINE "x86_64"
+#define MACHINE_TYPE "aarch64"
+#define DEFAULT_MACHINE "aarch64"
 /* #undef HAVE_DTRACE */
 
 #define SIGNAL_WITH_VIO_CLOSE 1
$

The usual solution to fix this is moving the header to a multiarch
location (i.e. below /usr/include/${DEB_HOST_MULTIARCH}).

The next best solution is dropping Multi-Arch: same from libmariadb-dev.
Do note that Multi-Arch: same is not required for using libmariadb-dev
for cross building.

Hope this helps

Helmut



More information about the pkg-mysql-maint mailing list