![Adam Duskett](/assets/img/avatar_default.png)
Globally change Adam Duskett's email address to aduskett@gmail.com. Note that one or two of the patches may have been applied upstream with the old email address, but in that case those patches will anyway be removed when bumping. Signed-off-by: Adam Duskett <Aduskett@gmail.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
90 lines
2.3 KiB
Diff
90 lines
2.3 KiB
Diff
From fb158af083e72c9aa0a8dfd4c6965f950192a230 Mon Sep 17 00:00:00 2001
|
|
From: Samuel Martin <s.martin49@gmail.com>
|
|
Date: Tue, 4 Jul 2017 11:09:20 -0400
|
|
Subject: [PATCH] auto/type/sizeof: rework autotest to be cross-compilation
|
|
friendly
|
|
|
|
Rework the sizeof test to do the checks at compile time instead of at
|
|
runtime. This way, it does not break when cross-compiling for a
|
|
different CPU architecture.
|
|
|
|
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
|
|
|
Refresh for 1.8.0.
|
|
|
|
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
|
|
[martin@barkynet.com: Updated for 1.10.0]
|
|
Signed-off-by: Martin Bark <martin@barkynet.com>
|
|
Signed-off-by: Adam Duskett <aduskett@gmail.com>
|
|
Refresh for 1.12.0
|
|
---
|
|
auto/types/sizeof | 37 ++++++++++++++++++++++++++++---------
|
|
1 file changed, 28 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/auto/types/sizeof b/auto/types/sizeof
|
|
index 480d8cf..61dcd2d 100644
|
|
--- a/auto/types/sizeof
|
|
+++ b/auto/types/sizeof
|
|
@@ -14,7 +14,7 @@ END
|
|
|
|
ngx_size=
|
|
|
|
-cat << END > $NGX_AUTOTEST.c
|
|
+cat << _EOF > $NGX_AUTOTEST.c
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/time.h>
|
|
@@ -25,22 +25,41 @@ $NGX_INCLUDE_UNISTD_H
|
|
$NGX_INCLUDE_INTTYPES_H
|
|
$NGX_INCLUDE_AUTO_CONFIG_H
|
|
|
|
-int main(void) {
|
|
- printf("%d", (int) sizeof($ngx_type));
|
|
+#if !defined( PASTE)
|
|
+#define PASTE2( x, y) x##y
|
|
+#define PASTE( x, y) PASTE2( x, y)
|
|
+#endif /* PASTE */
|
|
+
|
|
+#define SAY_IF_SIZEOF( typename, type, size) \\
|
|
+ static char PASTE( PASTE( PASTE( sizeof_, typename), _is_), size) \\
|
|
+ [(sizeof(type) == (size)) ? 1 : -1]
|
|
+
|
|
+SAY_IF_SIZEOF(TEST_TYPENAME, TEST_TYPE, TEST_SIZE);
|
|
+
|
|
+int main(void)
|
|
+{
|
|
return 0;
|
|
}
|
|
|
|
-END
|
|
+_EOF
|
|
|
|
|
|
-ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
|
- -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
|
|
+_ngx_typename=`echo "$ngx_type" | sed 's/ /_/g;s/\*/p/'`
|
|
+ngx_size="-1"
|
|
+ngx_size=`for i in 1 2 4 8 16 ; do \
|
|
+ $CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
|
|
+ -DTEST_TYPENAME="$_ngx_typename" -DTEST_TYPE="$ngx_type" -DTEST_SIZE="$i" \
|
|
+ $NGX_AUTOTEST.c -o $NGX_AUTOTEST \
|
|
+ $NGX_LD_OPT $ngx_feature_libs >/dev/null 2>&1 || continue ;\
|
|
+ echo $i ; break ; done`
|
|
|
|
-eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
|
|
+rm -rf $NGX_AUTOTEST*
|
|
|
|
+if test -z $ngx_size ; then
|
|
+ ngx_size=-1
|
|
+fi
|
|
|
|
-if [ -x $NGX_AUTOTEST ]; then
|
|
- ngx_size=`$NGX_AUTOTEST`
|
|
+if [ $ngx_size -gt 0 ]; then
|
|
echo " $ngx_size bytes"
|
|
fi
|
|
|
|
--
|
|
2.9.4
|
|
|