| Summary: | OpenIndiana build fails | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Portable OpenSSH | Reporter: | predrag.zecevic.1961 | ||||
| Component: | Build system | Assignee: | Assigned to nobody <unassigned-bugs> | ||||
| Status: | CLOSED FIXED | ||||||
| Severity: | major | CC: | dtucker | ||||
| Priority: | P5 | ||||||
| Version: | 8.5p1 | ||||||
| Hardware: | amd64 | ||||||
| OS: | SunOS | ||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 3270 | ||||||
| Attachments: |
|
||||||
|
Description
predrag.zecevic.1961
2021-03-11 21:31:19 AEDT
That's odd. It we test here on: $ uname -a SunOS openindiana 5.11 illumos-6cb54de205 i86pc i386 i86pc Which version do you have? I notice the error is from gmake, does it do the same thing with /usr/bin/make? (that's what I'm using) what's also odd is that debug(), fatal() and error() are now macros defined in log.h, which is included by port-solaris.c. Could you please show the exact configure invocation you used? Hi,
:; uname -a
SunOS hipster 5.11 illumos-f2db47a16a i86pc i386 i86pc
I have compiled it against self compiled versions (OpenSSl, etc) all installed to PREFIX=/pz/SFW. Configure command is same for 8.4 and 8.5. (Self compiled s/w versions used in both compilation are same too):
./configure --prefix=${PREFIX} \
--sysconfdir=${PREFIX}/etc/openssh \
--with-cflags="${CFLAGS} -DHAVE_MBLEN" \
--with-kerberos5=${PREFIX} \
--with-ssl-dir=${PREFIX} \
--with-zlib=${PREFIX} \
--with-pam \
--with-xauth=/usr/bin/xauth \
--with-md5-passwords \
--with-mantype=man \
--with-solaris-projects \
--with-solaris-privs
gmake
After configure:
OpenSSH has been configured with the following options:
User binaries: /pz/SFW/bin
System binaries: /pz/SFW/sbin
Configuration files: /pz/SFW/etc/openssh
Askpass program: /pz/SFW/libexec/ssh-askpass
Manual pages: /pz/SFW/share/man/manX
PID file: /var/run
Privilege separation chroot path: /var/empty
sshd default user PATH: /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/sbin:/pz/SFW/bin
(If PATH is set in /etc/default/login it will be used instead. If
used, ensure the path to scp is present, otherwise scp will not work.)
Manpage format: man
PAM support: yes
OSF SIA support: no
KerberosV support: yes
SELinux support: no
MD5 password support: yes
libedit support: no
libldns support: no
Solaris process contract support: no
Solaris project support: yes
Solaris privilege support: yes
IP address in $DISPLAY hack: no
Translate v4 in v6 hack: no
BSD Auth support: no
Random number source: OpenSSL internal ONLY
Privsep sandbox style: solaris
PKCS#11 support: yes
U2F/FIDO support: yes
Host: x86_64-pc-solaris2.11
Compiler: /usr/gcc/9/bin/gcc
Compiler flags: -lstdc++ -m64 -march=native -std=c89 -std=c99 -D_POSIX_PTHREAD_SEMANTICS -D_XOPEN_SOURCE=600 -D_FILE_OFFSET_BITS=64 -D__EXTENSIONS__ -I/pz/SFW/include -I/pz/SFW/apr/include -I/usr/include -I/usr/gnu/include -I/usr/include/readline -I/usr/include/ncurses -I/usr/include/idn2 -I/usr/include/gmp -DHAVE_MBLEN -pipe -Wno-error=format-truncation -Wall -Wextra -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wsizeof-pointer-memaccess -Wno-pointer-sign -Wno-unused-parameter -Wno-unused-result -Wimplicit-fallthrough -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -fstack-protector-strong -lstdc++ -m64 -march=native -std=c89 -std=c99 -D_POSIX_PTHREAD_SEMANTICS -D_XOPEN_SOURCE=600 -D_FILE_OFFSET_BITS=64 -D__EXTENSIONS__ -I/pz/SFW/include -I/pz/SFW/apr/include -I/usr/include -I/usr/gnu/include -I/usr/include/readline -I/usr/include/ncurses -I/usr/include/idn2 -I/usr/include/gmp -DHAVE_MBLEN -DHAVE_MBLEN
Preprocessor flags: -I/pz/SFW/include -I/pz/SFW/include -I/pz/SFW/include -I/pz/SFW/include
Linker flags: -L/pz/SFW/lib -R/pz/SFW/lib -L/pz/SFW/lib -R/pz/SFW/lib -m64 -R/pz/SFW/lib -R/pz/SFW/apr/lib -R/usr/gnu/lib/amd64 -R/usr/lib/amd64 -L/pz/SFW/lib -L/pz/SFW/apr/lib -L/usr/gnu/lib/amd64 -L/usr/lib/amd64 -Wl,-z,now -fstack-protector-strong -R/pz/SFW/lib
Libraries: -lcrypto -lmd -lz -lresolv -lsocket -lnsl -lm -lintl -lproject
+for sshd: -lpam -ldl
Thanks...
Regards.
... and, I do not think that gmake/make use makes difference: I use same shell for compiling both 8.4p1 (compiles fine) and 8.5p1 (compilation fails). Everything else is not touched. (In reply to predrag.zecevic.1961 from comment #2) > --with-solaris-projects \ > --with-solaris-privs I think I see the problem. Those two are in port-solaris.c, but the include of log.h is inside #ifdef USE_SOLARIS_PROCESS_CONTRACTS, which you do not enable and thus you do not get the macros for debug and friends. Depending on your compiler, this probably produced a missing-prototype warning in 8.4p1 but the linker was still able to do its thing. If you stick a #include "log.h" near the top of the file immediately after #include "includes.h" does that resolve the problem? Created attachment 3479 [details]
Move generic includes outside of ifdef
Please try this patch.
Yes, patch has solved compilation problem. I did not tested functionality yet... Regards. Tested new client and all looks fine. Will test server tomorrow, and add comment again. Many thanks. Regards The patch has been committed and will be in the next release. Thanks for the report. Just note on server: it also works as expected. Many thanks, again. closing resolved bugs as of 8.6p1 release |