[MDEV-6613] build system endianness test fails for ppc64le (i.e. Ubuntu) Created: 2014-08-20  Updated: 2014-10-11  Resolved: 2014-09-13

Status: Closed
Project: MariaDB Server
Component/s: Platform Power
Affects Version/s: 10.0.13
Fix Version/s: 5.5.40, 10.0.14

Type: Bug Priority: Major
Reporter: Axel Schwenke Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None
Environment:

Ubuntu ppc64le (Power8, little endian)


Issue Links:
PartOf
is part of MDEV-6478 MariaDB on Power8 Closed

 Description   

When building in the source dir, cmake fails with this error:

-- Check if the system is big endian
-- Searching 16 bit integer
-- Check size of unsigned short
-- Check size of unsigned short - failed
-- Check size of unsigned int
-- Check size of unsigned int - failed
-- Check size of unsigned long
-- Check size of unsigned long - failed
CMake Error at /usr/share/cmake-2.8/Modules/TestBigEndian.cmake:44 (message):
  no suitable type found
Call Stack (most recent call first):
  configure.cmake:542 (TEST_BIG_ENDIAN)
  CMakeLists.txt:346 (INCLUDE)

When building in a subdir of the source tree, cmake succeeds, but the make step fails for jemalloc-configure:

checking build system type... /home/skysql/mariadb-source/10.0-power/extra/jemalloc/config.guess: unable to guess system type
 
This script, last modified 2012-02-10, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
 
  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
and
  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 

Following those instructions and updating config.guess and config.sub fixes this problem. Not sure how to fix cmake above.



 Comments   
Comment by Sergei Golubchik [ 2014-08-22 ]

I suppose one needs to run autoreconf in jmalloc (and may be xz) directories to update all autotool-generated files.
And commit.

Comment by Sergey Vojtovich [ 2014-09-08 ]

Couldn't reproduce the first problem:

$ cd 10.0
$ cmake -DCMAKE_CXX_COMPILER="g++-4.8"
...
-- Check if the system is big endian
-- Searching 16 bit integer
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
...

Comment by Sergey Vojtovich [ 2014-09-08 ]

The second problem is fixed in upstream jemalloc: https://github.com/jemalloc/jemalloc/commit/d79d59b86649104e198e4b6a0892e673fcaada09

There are also many bug fixes since 3.3.1: https://raw.githubusercontent.com/jemalloc/jemalloc/master/ChangeLog

Sergei, please consider upgrading jemalloc.

Comment by Sergei Golubchik [ 2014-09-08 ]

As discussed on IRC, I'm going to remove it completely and use system jemalloc.

Comment by Axel Schwenke [ 2014-09-09 ]

The first problem only happens when building with ATC

$ cd 10.0
$ PATH=/opt/at7.1/bin:$PATH cmake .

Generated at Thu Feb 08 07:13:14 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.