Bugzilla – Bug 5201
Compilation bug of GSI OpenSSH on AIX 5.2 with xlc
Last modified: 2007-09-14 11:51:51
You need to log in before you can comment on or make changes to this bug.
Hi Jim, We're adding support for AIX to the VDT. At the moment, we're working on AIX 5.2, then we'll add 5.3 later. At this point, we're mostly concerned about Globus building, and it does that just fine. But the GSI OpenSSH build fails for what seems like trivial reasons. http://nmi-s001.cs.wisc.edu/nmi/index.php?page=results/viewFile&file_host=nmi-s001.cs.wisc.edu&file=%2Fnmi%2Frun%2Fcat_nmi-s001.cs.wisc.edu_1176236223_1212%2Fuserdir%2Fppc_aix_5.2%2Fbuild.out&refresh=0&no_header=1&view=1 It boils down to this: "hostfile.c", line 92.35: 1506-280 (E) Function argument assignment between types "unsigned char*" and "char*" is not allowed. "hostfile.c", line 130.31: 1506-280 (E) Function argument assignment between types "const unsigned char*" and "const char*" is not allowed. "hostfile.c", line 131.30: 1506-280 (E) Function argument assignment between types "unsigned char*" and "char*" is not allowed. "hostfile.c", line 134.24: 1506-280 (E) Function argument assignment between types "const unsigned char*" and "char*" is not allowed. "hostfile.c", line 135.24: 1506-280 (E) Function argument assignment between types "const unsigned char*" and "char*" is not allowed. I'm not sure what the fundamental problem is, but it looks like a few casts might solve the problem. We don't need GSI OpenSSH immediately, so this is not a high priority problem for us. But you might want to look at it for the next release. Thanks! -alain
Looks like the fatal error is actually in kex.c on 32 versus 64 bit type conflicts. The GT 4.0.4 binary release uses vendorcc32 on this platform. This error is when using vendorcc64dbg instead. /prereq/vacpp-6/bin/xlc_r -q64 -g -qfullpath -D_ALL_SOURCE -q64 -D_ALL_SOURCE -I. -I. -I/prereq/tcp_wrappers-7.6/include -I/home/condor/execute/dir_33492/userdir/zlib_install/include -I/home/condor/execute/dir_33492/userdir/install/include -I/home/condor/execute/dir_33492/userdir/install/include/vendorcc64dbg -I/home/condor/execute/dir_33492/userdir/install/include/vendorcc64dbg -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c kex.c "dispatch.h", line 39.37: 1506-112 (E) Duplicate type qualifier "volatile" ignored. "/usr/include/unistd.h", line 171.17: 1506-343 (S) Redeclaration of lseek64 differs from previous declaration on line 169 of "/usr/include/unistd.h". "/usr/include/unistd.h", line 171.17: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long". "/usr/include/unistd.h", line 171.17: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long". "/usr/include/sys/lockf.h", line 64.20: 1506-343 (S) Redeclaration of lockf64 differs from previous declaration on line 62 of "/usr/include/sys/lockf.h". "/usr/include/sys/lockf.h", line 64.20: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long". "/usr/include/unistd.h", line 777.33: 1506-343 (S) Redeclaration of ftruncate64 differs from previous declaration on line 775 of "/usr/include/unistd.h". "/usr/include/unistd.h", line 777.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long". "/usr/include/unistd.h", line 812.33: 1506-343 (S) Redeclaration of truncate64 differs from previous declaration on line 810 of "/usr/include/unistd.h". "/usr/include/unistd.h", line 812.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long". "/usr/include/unistd.h", line 829.33: 1506-343 (S) Redeclaration of pread64 differs from previous declaration on line 826 of "/usr/include/unistd.h". "/usr/include/unistd.h", line 829.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long". "/usr/include/unistd.h", line 830.33: 1506-343 (S) Redeclaration of pwrite64 differs from previous declaration on line 827 of "/usr/include/unistd.h". "/usr/include/unistd.h", line 830.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long". "/usr/include/unistd.h", line 897.25: 1506-343 (S) Redeclaration of fclear64 differs from previous declaration on line 894 of "/usr/include/unistd.h". "/usr/include/unistd.h", line 897.25: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long". "/usr/include/unistd.h", line 897.25: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long". "/usr/include/unistd.h", line 898.25: 1506-343 (S) Redeclaration of fsync_range64 differs from previous declaration on line 895 of "/usr/include/unistd.h". "/usr/include/unistd.h", line 898.25: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long". make: *** [kex.o] Error 1
Since it builds OK using vendorcc32, I don't plan to fix this. I prefer to minimize deviations from the OpenSSH source.
*** Bug 5465 has been marked as a duplicate of this bug. ***
The platform notes at http://www.globus.org/toolkit/docs/4.0/admin/docbook/ch03.html#s-platform-aix should be updated with the vendorcc32dbg work around for building gsi-openssh on AIX.
Jim and Charles, I was able to downloaded OpenSSH 4.6p1 and configured and built a 64 bit version without any errors for both the xlc and xlc_r compilers on AIX 5.3. So the problem does not occur with the base OpenSSH 4.6p1 source but with the modifications.
I've committed a fix: http://www.globus.org/mail_archive/gsi-openssh-commit/2007/09/msg00021.html I plan to include it in a GSI-OpenSSH 4.1 release today.
The new release at ftp://ftp.globus.org/pub/gsissh/GPT/4.1/gsi_openssh_bundle-4.1-src.tar.gz should resolve this issue. If the problem persists, please re-open this bug.