Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 44404f3

Browse files
committed
Adjust configure to use "+Olibmerrno" with HP-UX C compiler, if possible.
This is reported to be necessary on some versions of that OS. In service of this, cause PGAC_PROG_CC_CFLAGS_OPT to reject switches that result in compiler warnings, since on yet other versions of that OS, the switch does nothing except provoke a warning. Report and patch by Ibrar Ahmed, further tweaking by me.
1 parent 7b158d1 commit 44404f3

File tree

3 files changed

+94
-0
lines changed

3 files changed

+94
-0
lines changed

config/c-compiler.m4

+3
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,12 @@ AC_DEFUN([PGAC_PROG_CC_CFLAGS_OPT],
130130
AC_CACHE_CHECK([whether $CC supports $1], [Ac_cachevar],
131131
[pgac_save_CFLAGS=$CFLAGS
132132
CFLAGS="$pgac_save_CFLAGS $1"
133+
ac_save_c_werror_flag=$ac_c_werror_flag
134+
ac_c_werror_flag=yes
133135
_AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
134136
[Ac_cachevar=yes],
135137
[Ac_cachevar=no])
138+
ac_c_werror_flag=$ac_save_c_werror_flag
136139
CFLAGS="$pgac_save_CFLAGS"])
137140
if test x"$Ac_cachevar" = x"yes"; then
138141
CFLAGS="$CFLAGS $1"

configure

+87
Original file line numberDiff line numberDiff line change
@@ -4010,6 +4010,8 @@ if test "${pgac_cv_prog_cc_cflags__Wdeclaration_after_statement+set}" = set; the
40104010
else
40114011
pgac_save_CFLAGS=$CFLAGS
40124012
CFLAGS="$pgac_save_CFLAGS -Wdeclaration-after-statement"
4013+
ac_save_c_werror_flag=$ac_c_werror_flag
4014+
ac_c_werror_flag=yes
40134015
cat >conftest.$ac_ext <<_ACEOF
40144016
/* confdefs.h. */
40154017
_ACEOF
@@ -4052,6 +4054,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
40524054
fi
40534055

40544056
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4057+
ac_c_werror_flag=$ac_save_c_werror_flag
40554058
CFLAGS="$pgac_save_CFLAGS"
40564059
fi
40574060
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__Wdeclaration_after_statement" >&5
@@ -4067,6 +4070,8 @@ if test "${pgac_cv_prog_cc_cflags__Wendif_labels+set}" = set; then
40674070
else
40684071
pgac_save_CFLAGS=$CFLAGS
40694072
CFLAGS="$pgac_save_CFLAGS -Wendif-labels"
4073+
ac_save_c_werror_flag=$ac_c_werror_flag
4074+
ac_c_werror_flag=yes
40704075
cat >conftest.$ac_ext <<_ACEOF
40714076
/* confdefs.h. */
40724077
_ACEOF
@@ -4109,6 +4114,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
41094114
fi
41104115

41114116
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4117+
ac_c_werror_flag=$ac_save_c_werror_flag
41124118
CFLAGS="$pgac_save_CFLAGS"
41134119
fi
41144120
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__Wendif_labels" >&5
@@ -4125,6 +4131,8 @@ if test "${pgac_cv_prog_cc_cflags__Wformat_security+set}" = set; then
41254131
else
41264132
pgac_save_CFLAGS=$CFLAGS
41274133
CFLAGS="$pgac_save_CFLAGS -Wformat-security"
4134+
ac_save_c_werror_flag=$ac_c_werror_flag
4135+
ac_c_werror_flag=yes
41284136
cat >conftest.$ac_ext <<_ACEOF
41294137
/* confdefs.h. */
41304138
_ACEOF
@@ -4167,6 +4175,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
41674175
fi
41684176

41694177
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4178+
ac_c_werror_flag=$ac_save_c_werror_flag
41704179
CFLAGS="$pgac_save_CFLAGS"
41714180
fi
41724181
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__Wformat_security" >&5
@@ -4183,6 +4192,8 @@ if test "${pgac_cv_prog_cc_cflags__fno_strict_aliasing+set}" = set; then
41834192
else
41844193
pgac_save_CFLAGS=$CFLAGS
41854194
CFLAGS="$pgac_save_CFLAGS -fno-strict-aliasing"
4195+
ac_save_c_werror_flag=$ac_c_werror_flag
4196+
ac_c_werror_flag=yes
41864197
cat >conftest.$ac_ext <<_ACEOF
41874198
/* confdefs.h. */
41884199
_ACEOF
@@ -4225,6 +4236,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
42254236
fi
42264237

42274238
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4239+
ac_c_werror_flag=$ac_save_c_werror_flag
42284240
CFLAGS="$pgac_save_CFLAGS"
42294241
fi
42304242
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__fno_strict_aliasing" >&5
@@ -4241,6 +4253,8 @@ if test "${pgac_cv_prog_cc_cflags__fwrapv+set}" = set; then
42414253
else
42424254
pgac_save_CFLAGS=$CFLAGS
42434255
CFLAGS="$pgac_save_CFLAGS -fwrapv"
4256+
ac_save_c_werror_flag=$ac_c_werror_flag
4257+
ac_c_werror_flag=yes
42444258
cat >conftest.$ac_ext <<_ACEOF
42454259
/* confdefs.h. */
42464260
_ACEOF
@@ -4283,6 +4297,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
42834297
fi
42844298

42854299
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4300+
ac_c_werror_flag=$ac_save_c_werror_flag
42864301
CFLAGS="$pgac_save_CFLAGS"
42874302
fi
42884303
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__fwrapv" >&5
@@ -4301,6 +4316,8 @@ if test "${pgac_cv_prog_cc_cflags__mp1+set}" = set; then
43014316
else
43024317
pgac_save_CFLAGS=$CFLAGS
43034318
CFLAGS="$pgac_save_CFLAGS -mp1"
4319+
ac_save_c_werror_flag=$ac_c_werror_flag
4320+
ac_c_werror_flag=yes
43044321
cat >conftest.$ac_ext <<_ACEOF
43054322
/* confdefs.h. */
43064323
_ACEOF
@@ -4343,6 +4360,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
43434360
fi
43444361

43454362
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4363+
ac_c_werror_flag=$ac_save_c_werror_flag
43464364
CFLAGS="$pgac_save_CFLAGS"
43474365
fi
43484366
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__mp1" >&5
@@ -4359,6 +4377,8 @@ if test "${pgac_cv_prog_cc_cflags__fno_strict_aliasing+set}" = set; then
43594377
else
43604378
pgac_save_CFLAGS=$CFLAGS
43614379
CFLAGS="$pgac_save_CFLAGS -fno-strict-aliasing"
4380+
ac_save_c_werror_flag=$ac_c_werror_flag
4381+
ac_c_werror_flag=yes
43624382
cat >conftest.$ac_ext <<_ACEOF
43634383
/* confdefs.h. */
43644384
_ACEOF
@@ -4401,6 +4421,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
44014421
fi
44024422

44034423
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4424+
ac_c_werror_flag=$ac_save_c_werror_flag
44044425
CFLAGS="$pgac_save_CFLAGS"
44054426
fi
44064427
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__fno_strict_aliasing" >&5
@@ -4418,6 +4439,8 @@ if test "${pgac_cv_prog_cc_cflags__qnoansialias+set}" = set; then
44184439
else
44194440
pgac_save_CFLAGS=$CFLAGS
44204441
CFLAGS="$pgac_save_CFLAGS -qnoansialias"
4442+
ac_save_c_werror_flag=$ac_c_werror_flag
4443+
ac_c_werror_flag=yes
44214444
cat >conftest.$ac_ext <<_ACEOF
44224445
/* confdefs.h. */
44234446
_ACEOF
@@ -4460,6 +4483,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
44604483
fi
44614484

44624485
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4486+
ac_c_werror_flag=$ac_save_c_werror_flag
44634487
CFLAGS="$pgac_save_CFLAGS"
44644488
fi
44654489
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags__qnoansialias" >&5
@@ -4468,6 +4492,69 @@ if test x"$pgac_cv_prog_cc_cflags__qnoansialias" = x"yes"; then
44684492
CFLAGS="$CFLAGS -qnoansialias"
44694493
fi
44704494

4495+
elif test "$PORTNAME" = "hpux"; then
4496+
# On some versions of HP-UX, libm functions do not set errno by default.
4497+
# Fix that by using +Olibmerrno if the compiler recognizes it.
4498+
{ $as_echo "$as_me:$LINENO: checking whether $CC supports +Olibmerrno" >&5
4499+
$as_echo_n "checking whether $CC supports +Olibmerrno... " >&6; }
4500+
if test "${pgac_cv_prog_cc_cflags_pOlibmerrno+set}" = set; then
4501+
$as_echo_n "(cached) " >&6
4502+
else
4503+
pgac_save_CFLAGS=$CFLAGS
4504+
CFLAGS="$pgac_save_CFLAGS +Olibmerrno"
4505+
ac_save_c_werror_flag=$ac_c_werror_flag
4506+
ac_c_werror_flag=yes
4507+
cat >conftest.$ac_ext <<_ACEOF
4508+
/* confdefs.h. */
4509+
_ACEOF
4510+
cat confdefs.h >>conftest.$ac_ext
4511+
cat >>conftest.$ac_ext <<_ACEOF
4512+
/* end confdefs.h. */
4513+
4514+
int
4515+
main ()
4516+
{
4517+
4518+
;
4519+
return 0;
4520+
}
4521+
_ACEOF
4522+
rm -f conftest.$ac_objext
4523+
if { (ac_try="$ac_compile"
4524+
case "(($ac_try" in
4525+
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
4526+
*) ac_try_echo=$ac_try;;
4527+
esac
4528+
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
4529+
$as_echo "$ac_try_echo") >&5
4530+
(eval "$ac_compile") 2>conftest.er1
4531+
ac_status=$?
4532+
grep -v '^ *+' conftest.er1 >conftest.err
4533+
rm -f conftest.er1
4534+
cat conftest.err >&5
4535+
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
4536+
(exit $ac_status); } && {
4537+
test -z "$ac_c_werror_flag" ||
4538+
test ! -s conftest.err
4539+
} && test -s conftest.$ac_objext; then
4540+
pgac_cv_prog_cc_cflags_pOlibmerrno=yes
4541+
else
4542+
$as_echo "$as_me: failed program was:" >&5
4543+
sed 's/^/| /' conftest.$ac_ext >&5
4544+
4545+
pgac_cv_prog_cc_cflags_pOlibmerrno=no
4546+
fi
4547+
4548+
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4549+
ac_c_werror_flag=$ac_save_c_werror_flag
4550+
CFLAGS="$pgac_save_CFLAGS"
4551+
fi
4552+
{ $as_echo "$as_me:$LINENO: result: $pgac_cv_prog_cc_cflags_pOlibmerrno" >&5
4553+
$as_echo "$pgac_cv_prog_cc_cflags_pOlibmerrno" >&6; }
4554+
if test x"$pgac_cv_prog_cc_cflags_pOlibmerrno" = x"yes"; then
4555+
CFLAGS="$CFLAGS +Olibmerrno"
4556+
fi
4557+
44714558
fi
44724559

44734560
# supply -g if --enable-debug

configure.in

+4
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,10 @@ elif test "$ICC" = yes; then
445445
elif test "$PORTNAME" = "aix"; then
446446
# AIX's xlc has to have strict aliasing turned off too
447447
PGAC_PROG_CC_CFLAGS_OPT([-qnoansialias])
448+
elif test "$PORTNAME" = "hpux"; then
449+
# On some versions of HP-UX, libm functions do not set errno by default.
450+
# Fix that by using +Olibmerrno if the compiler recognizes it.
451+
PGAC_PROG_CC_CFLAGS_OPT([+Olibmerrno])
448452
fi
449453

450454
# supply -g if --enable-debug

0 commit comments

Comments
 (0)