From 17ddce4692b31af4374b28cd40b9f25e8ed629cd Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Fri, 24 Feb 2012 11:11:02 +0100 Subject: Remove Q_BYTE_ORDER and -*-endian arguments from configures Do not write Q_BYTE_ORDER to qconfig.h in the configures. Instead, we #define Q_BYTE_ORDER in qprocessordetection.h, since many CPUs only support a single endian format. For bi-endian processors, we set Q_BYTE_ORDER depending on how the preprocessor sets __BYTE_ORDER__, __BIG_ENDIAN__, or __LITTLE_ENDIAN__ (instead of using a compile test to do so). For operating systems that only support a single byte order, we can check for Q_OS_* in addition to the preprocessor macros above. This is possible because qprocessordetection.h is included by qglobal.h after Q_OS_* and Q_CC_* detection has been done. Do this for Windows CE, which is always little- endian according to MSDN. Change-Id: I019a95e05252ef69895c4b38fbfa6ebfb6a943cd Reviewed-by: Oswald Buddenhagen --- config.tests/unix/endian.test | 60 --------------------------------- config.tests/unix/endian/endiantest.cpp | 56 ------------------------------ config.tests/unix/endian/endiantest.pro | 3 -- 3 files changed, 119 deletions(-) delete mode 100755 config.tests/unix/endian.test delete mode 100644 config.tests/unix/endian/endiantest.cpp delete mode 100644 config.tests/unix/endian/endiantest.pro (limited to 'config.tests') diff --git a/config.tests/unix/endian.test b/config.tests/unix/endian.test deleted file mode 100755 index a662011a27..0000000000 --- a/config.tests/unix/endian.test +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -QMKSPEC=$1 -VERBOSE=$2 -SRCDIR=$3 -OUTDIR=$4 -QMFLAGS=$5 - -# debuggery -[ "$VERBOSE" = "yes" ] && echo "Determining machine byte-order... ($*)" - -# build and run a test program -test -d "$OUTDIR/config.tests/unix/endian" || mkdir -p "$OUTDIR/config.tests/unix/endian" -"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "QT_BUILD_TREE=$OUTDIR" $QMFLAGS "$SRCDIR/config.tests/unix/endian/endiantest.pro" -o "$OUTDIR/config.tests/unix/endian/Makefile" >/dev/null 2>&1 -cd "$OUTDIR/config.tests/unix/endian" - - -ENDIAN="UNKNOWN" -[ "$VERBOSE" = "yes" ] && $MAKE || $MAKE >/dev/null 2>&1 - -if [ -f ./endiantest.exe ]; then - binary=./endiantest.exe -else - binary=./endiantest -fi - - -if [ -f $binary ]; then - : # nop -else - [ "$VERBOSE" = "yes" ] && echo "Unknown byte order!" - exit 2 -fi - -if strings - $binary | grep LeastSignificantByteFirst >/dev/null 2>&1; then - [ "$VERBOSE" = "yes" ] && echo " Found 'LeastSignificantByteFirst' in binary" - ENDIAN="LITTLE" -elif strings - $binary | grep MostSignificantByteFirst >/dev/null 2>&1; then - [ "$VERBOSE" = "yes" ] && echo " Found 'MostSignificantByteFirst' in binary" - ENDIAN="BIG" -fi - -# make clean as this tests is compiled for both the host and the target -if [ "$VERBOSE" = "yes" ]; then - $MAKE distclean -else - $MAKE distclean >/dev/null 2>&1 -fi - -# done -if [ "$ENDIAN" = "LITTLE" ]; then - [ "$VERBOSE" = "yes" ] && echo "Using little endian." - exit 0 -elif [ "$ENDIAN" = "BIG" ]; then - [ "$VERBOSE" = "yes" ] && echo "Using big endian." - exit 1 -else - [ "$VERBOSE" = "yes" ] && echo "Unknown byte order!" - exit 2 -fi diff --git a/config.tests/unix/endian/endiantest.cpp b/config.tests/unix/endian/endiantest.cpp deleted file mode 100644 index e08a11b944..0000000000 --- a/config.tests/unix/endian/endiantest.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the config.tests of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// "MostSignificantByteFirst" -short msb_bigendian[] = { 0x0000, 0x4d6f, 0x7374, 0x5369, 0x676e, 0x6966, 0x6963, 0x616e, 0x7442, 0x7974, 0x6546, 0x6972, 0x7374, 0x0000 }; - -// "LeastSignificantByteFirst" -short lsb_littleendian[] = { 0x0000, 0x654c, 0x7361, 0x5374, 0x6769, 0x696e, 0x6966, 0x6163, 0x746e, 0x7942, 0x6574, 0x6946, 0x7372, 0x0074, 0x0000 }; - -int main(int, char **) -{ - // make sure the linker doesn't throw away the arrays - void (*msb_bigendian_string)() = (void (*)())msb_bigendian; - void (*lsb_littleendian_string)() = (void (*)())lsb_littleendian; - (void)msb_bigendian_string(); - (void)lsb_littleendian_string(); - return msb_bigendian[1] == lsb_littleendian[1]; -} diff --git a/config.tests/unix/endian/endiantest.pro b/config.tests/unix/endian/endiantest.pro deleted file mode 100644 index 7b739eb3f2..0000000000 --- a/config.tests/unix/endian/endiantest.pro +++ /dev/null @@ -1,3 +0,0 @@ -SOURCES = endiantest.cpp -CONFIG -= qt dylib -mac:CONFIG -= app_bundle -- cgit v1.2.3