On Tue, 24 Feb 2015, Darren Tucker wrote: | On Tue, Feb 24, 2015 at 3:11 PM, Kevin Brott <kevin.brott at gmail.com> wrote: | | > [...] | > "cipher-aesctr.c", line 30: warning #2260-D: explicit type is missing | > ("int" assumed) | > static inline void | > | | does replacing "inline" with "__inline__" work? Failing that, removing | inline entirely? I just changed __inline__ to inline so we don't want to go that direction. We already use "static inline void" in openbsd-compat/arc4random.c. Puzzling. | ld: Unsatisfied symbol "xstrdup" in file | > openbsd-compat//libopenbsd-compat.a[bsd-misc.o] | > 1 errors. | > | | That one looks like a link order problem. Unfortunately, given that it | already has "-lssh -lopenbsd-compat -lssh -lopenbsd-compat" we seem to just | be digging the hole deeper... Makfile.in has been updated for this. Kevin, add another -lssh after the last -lopenbsd-compat in your Makefile for the netcat rule. -- Tim Rice Multitalents tim at multitalents.net
On Tue, Feb 24, 2015 at 7:37 PM, Tim Rice <tim at multitalents.net> wrote:> > | does replacing "inline" with "__inline__" work? Failing that, removing > | inline entirely? > > I just changed __inline__ to inline so we don't want to go that direction.yeah but if it worked we could have done #ifdef whatever #define __inline__ inline ... so they both worked> We already use "static inline void" in openbsd-compat/arc4random.c. > Puzzling. >Now that's weird. Also "static inline int" in sshbuf.c and addrmatch.c. Oh! The ones that work #include "includes.h" and cipher-aesctr,c doesn't. "inline" must be defined in the headers somewhere (the system ones, it's not in ours). -- Darren Tucker (dtucker at zip.com.au) GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4 37C9 C982 80C7 8FF4 FA69 Good judgement comes with experience. Unfortunately, the experience usually comes from bad judgement.
On Tue, Feb 24, 2015 at 8:34 PM, Darren Tucker <dtucker at zip.com.au> wrote:> Oh! The ones that work #include "includes.h" and cipher-aesctr,c doesn't. >Also, cipher-aesctr.c starts like this: #include <sys/types.h> #include <string.h> #ifndef WITH_OPENSSL [rest of file] so there was no way for WITH_OPENSSL to get set since configure puts it in config.h so we were always compiling this file where it was needed or not. I've just committed the change to add includes.h. -- Darren Tucker (dtucker at zip.com.au) GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4 37C9 C982 80C7 8FF4 FA69 Good judgement comes with experience. Unfortunately, the experience usually comes from bad judgement.
On Tue, 24 Feb 2015, Darren Tucker wrote: | On Tue, Feb 24, 2015 at 7:37 PM, Tim Rice <tim at multitalents.net> wrote: | | > We already use "static inline void" in openbsd-compat/arc4random.c. | > Puzzling. | > | | Now that's weird. Also "static inline int" in sshbuf.c and addrmatch.c. | | Oh! The ones that work #include "includes.h" and cipher-aesctr,c doesn't. | "inline" must be defined in the headers somewhere (the system ones, it's | not in ours). Maybe some compilers handle "static inline int" but not "static inline void". Looking again at openbsd-compat/arc4random.c I see inline defined to nothing for the non GCC case. -- Tim Rice Multitalents tim at multitalents.net
Interestingly enough if I re-run 'make tests' using HP-UX cc it continues into the tests because it actuall did build regress netcat! (not executable - but it's there) ... run test connect.sh ... ssh connect with protocol 1 failed ssh connect with protocol 2 failed failed simple connect Which is exactly where the gcc build fails - it just doesn't die at the netcat build. ==== On Wed, Feb 25, 2015 at 8:34 AM, Kevin Brott <kevin.brott at gmail.com> wrote:> On Tue, Feb 24, 2015 at 6:48 PM, Darren Tucker <dtucker at zip.com.au> wrote: > >> On Tue, Feb 24, 2015 at 9:08 PM, Kevin Brott <kevin.brott at gmail.com> >> wrote: >>> >>> The __inline__ substitution did not work - but removing 'inline' did >>> in getting past that failure >>> . Had to do it again on the just-patched clone to get past that failure >>> >> >> I think I've just commited a fix for this. >> >> >>> Patch almost worked ... still complains about ntohs. >>> >> >> That should be a macro. On Linux and OpenBSD it's in <arpa/inet.h>. My >> guess is it's somewhere different on HPUX. Can you check the man page >> and/or grep /usr/include ? >> >> > ntohs shows up in > /usr/include/arpa/inet.h > /usr/include/netinet/in.h > /usr/include/sys/byteorder.h > > The byteorder(3N) manpage says this: > SYNOPSIS > #include <netinet/in.h> > _XOPEN_SOURCE_EXTENDED only > #include <arpa/inet.h> > unsigned long htonl(unsigned long hostlong); > unsigned short htons(unsigned short hostshort); > unsigned long ntohl(unsigned long netlong); > unsigned short ntohs(unsigned short netshort); > > DESCRIPTION > These routines convert 16- and 32-bit quantities between network > byte order and host byte order. On HP-UX systems, network and host byte > orders are identical, so these routines are defined as null macros in > the include file <netinet/in.h>. If _XOPEN_SOURCE_EXTENDED is defined > then these routines are defined in the include file <arpa/inet.h>. > > N > ot sure what to think of that - my include-fu is weak. > >> >> redefinition of macro "_NSIG" (declared at line 829 of >>> "./defines.h") >>> # define _NSIG 45 >>> >> >> I think I've fixed that too. You should be able to "git pull" to pick up >> both changes. >> >> > > Yup - fixed in the snapshot and the latest git pull - however HP cc is > still puking on ntohs missing during the linking of netcat. > > BTW on that last gcc ruin - the tests failed on simple connect - going to > retry here in a bit and see if the latest tree is still puking. > > -- > # include <stddisclaimer.h> > /* Kevin Brott <Kevin.Brott at gmail.com> */ > >-- # include <stddisclaimer.h> /* Kevin Brott <Kevin.Brott at gmail.com> */
On Wed, Feb 25, 2015 at 11:50 AM, Kevin Brott <kevin.brott at gmail.com> wrote:> > Interestingly enough if I re-run 'make tests' using HP-UX cc it continues > into the tests because it actuall did build regress netcat! (not executable > - but it's there) ... > > run test connect.sh ... > ssh connect with protocol 1 failed > ssh connect with protocol 2 failed > failed simple connect >The files failed-ssh.log and failed-sshd.log in the regress directory should give some clues about why it failed. Could you please post them? Thanks. -- Darren Tucker (dtucker at zip.com.au) GPG key 8FF4FA69 / D9A3 86E9 7EEE AF4B B2D4 37C9 C982 80C7 8FF4 FA69 Good judgement comes with experience. Unfortunately, the experience usually comes from bad judgement.
Darren Tucker wrote:> On Tue, Feb 24, 2015 at 7:37 PM, Tim Rice <tim at multitalents.net> wrote: >> | does replacing "inline" with "__inline__" work? Failing that, removing >> | inline entirely? >> >> I just changed __inline__ to inline so we don't want to go that direction. > > yeah but if it worked we could have done #ifdef whatever #define __inline__ > inline ... so they both worked > > >> We already use "static inline void" in openbsd-compat/arc4random.c. >> Puzzling. >> > Now that's weird. Also "static inline int" in sshbuf.c and addrmatch.c. > > Oh! The ones that work #include "includes.h" and cipher-aesctr,c doesn't. > "inline" must be defined in the headers somewhere (the system ones, it's > not in ours).AC_C_INLINE is configure macro that deal with inline. Then ensure that config.h is included into C code. indirectly it is from "includes.h" Regards, Roumen -- Get SSH with X.509 certificate support http://roumenpetrov.info/openssh/