Tru64 configure issues

2021-06-04 Thread Larkin Nickle
On Tru64 5.1B with the Compaq C compiler, configure fails when finding 
zlib because multiple incompatible flags are added to CFLAGS. It appears 
the tests for these flags are passing even though the compiler doesn't 
actually support them.


e.g.

configure: Checking if compiler 'cc' supports -Wno-pointer-sign
configure: Setting -Wno-pointer-sign
configure: Checking if compiler 'cc' supports -fno-strict-overflow
configure: Setting -fno-strict-overflow
configure: Checking for available hardened build flags:
configure: Setting -fPIE

However, the zlib check fails due to:

configure:3323: cc -o conftest -g -Wno-pointer-sign -fno-strict-overflow 
-fPIE -pie conftest.c  >&5
ld: Invalid flag usage: Wno-pointer-sign, -Wx,-option must appear after 
-_SYSTYPE_SVR4


If the check for `-Wno-pointer-sign` is modified so that it doesn't 
actually get added to CFLAGS, then the zlib check fails as 
`-fno-strict-overflow` isn't supported.


configure:4845: checking for deflate in -lz
configure:4870: cc -o conftest -g  -fno-strict-overflow -fPIE 
-fstack-protector-strong -D_FORTIFY_SOURCE=2 -mfunction-return=thunk 
-mindirect-branch=thunk -I/usr/util/include  -L/usr/util/lib  conftest.c 
-lz   >&5

ld: -fno-strict-overflow: Unknown flag

Larkin


Re: Tru64 configure issues

2021-06-04 Thread Kazuo Kuroi

Hey Larkin,

Hmm, this is a bit weird, but since Matt seems busy these days, I'll see 
what I can to do help someone else interested in Dropbear. This is all 
my own cursory, 5 minute check over the problem:


Firstly, to disable PIE since you don't need it, pass --disable-harden 
to the configure script. The problematic part of the configure script is 
between lines 3983 and 4028, so commenting that out could temporarily at 
least get your configure going. If that still breaks zlib, you should be 
able to still build dropbear without zlib -- try passing --disable-zlib. 
Worst case, you can just add -lz manually to the makefile.


As for correcting the issues permanently, there's a lot of minor issues 
in dropbear that are caused by the gnu autoconf and intermediate 
makefiles assuming many compilers support GCCisms, and there's not 
always good workarounds. You can refer to my old fix here for examples 
of potential issues: 
https://lists.ucc.gu.uwa.edu.au/pipermail/dropbear/2021q2/002294.html


I have a lot of other patches that may prove beneficial. I'm not super 
familiar with the ins and outs of autoconf, but this should fix the 
build for you at least for now.


If you're interested, I've considered making a POSIX Make fork of 
dropbear and related utilities that should prove easier for people on 
niche UNIX systems to build Dropbear. If you're interested, you can be a 
tester. I have people interested with HP-UX, IRIX (me lawl) and Unixware 
systems, so having a Tru64 tester would be beneficial.


If this doesn't fix it, you'll need to dive deep into the macro soup 
that is autoconf, and that's something I'm not quite good at myself.


Let me know if cutting out that bit fixes it for both, if it doesn't, 
then I can probably try to find it elsewhere.


-- Kaz Kuroi

On 6/4/2021 5:15 PM, Larkin Nickle wrote:
On Tru64 5.1B with the Compaq C compiler, configure fails when finding 
zlib because multiple incompatible flags are added to CFLAGS. It 
appears the tests for these flags are passing even though the compiler 
doesn't actually support them.


e.g.

configure: Checking if compiler 'cc' supports -Wno-pointer-sign
configure: Setting -Wno-pointer-sign
configure: Checking if compiler 'cc' supports -fno-strict-overflow
configure: Setting -fno-strict-overflow
configure: Checking for available hardened build flags:
configure: Setting -fPIE

However, the zlib check fails due to:

configure:3323: cc -o conftest -g -Wno-pointer-sign 
-fno-strict-overflow -fPIE -pie conftest.c  >&5
ld: Invalid flag usage: Wno-pointer-sign, -Wx,-option must appear 
after -_SYSTYPE_SVR4


If the check for `-Wno-pointer-sign` is modified so that it doesn't 
actually get added to CFLAGS, then the zlib check fails as 
`-fno-strict-overflow` isn't supported.


configure:4845: checking for deflate in -lz
configure:4870: cc -o conftest -g  -fno-strict-overflow -fPIE 
-fstack-protector-strong -D_FORTIFY_SOURCE=2 -mfunction-return=thunk 
-mindirect-branch=thunk -I/usr/util/include  -L/usr/util/lib  
conftest.c -lz   >&5

ld: -fno-strict-overflow: Unknown flag

Larkin