cross compilation?

Bryan Chua chua at ayrnetworks.com
Wed Apr 3 12:26:30 EST 2002


I am hoping that Mozilla doesn't hose it this time....

-- bryan

Ben Lindstrom wrote:
> Can you avoid reforming and just post the required changes you feel
> should be made?  It makes it very hard to decide if this is an
> acceptable thing to do.
> 
> - Ben
> 
> On Tue, 2 Apr 2002, Bryan Chua wrote:
> 
> 
>>../openssh-3.1p1/configure --host=mips-linux --build=i686-linux --with-pam
>>    does not work.
>>
>>It selects the correct toolchain prefix, but the configure script bails
>>on cross-compilation.
>>
>>Attached is a patch that *might* make the right paranoid assumptions,
>>but I am not positive.
>>
>>-- bryan



--- configure.ac.orig	Tue Feb 26 22:12:35 2002
+++ configure.ac	Wed Mar 27 14:28:02 2002
@@ -437,20 +437,6 @@
          ]
  )

-AC_MSG_CHECKING([whether struct dirent allocates space for d_name])
-AC_TRY_RUN(
- 
[
-#include <sys/types.h>
-#include <dirent.h>
-int main(void){struct dirent d;return(sizeof(d.d_name)<=sizeof(char));}
- 
],
- 
[AC_MSG_RESULT(yes)],
- 
[
- 
	AC_MSG_RESULT(no)
- 
	AC_DEFINE(BROKEN_ONE_BYTE_DIRENT_D_NAME)
- 
]
-)
-
  # Check whether user wants S/Key support
  SKEY_MSG="no"
  AC_ARG_WITH(skey,
@@ -469,11 +455,13 @@
  	 
	SKEY_MSG="yes"
  	
  	 
	AC_MSG_CHECKING([for s/key support])
- 
		AC_TRY_RUN(
+ 
		AC_TRY_LINK(
  	 
		[
-#include <stdio.h>
-#include <skey.h>
-int main() { char *ff = skey_keyinfo(""); ff=""; return 0; }
+ 
			#include <stdio.h>
+ 
			#include <skey.h>
+ 
			],
+ 
			[
+ 
			char *ff = skey_keyinfo(""); ff="";
  	 
		],
  	 
		[AC_MSG_RESULT(yes)],
  	 
		[
@@ -625,6 +613,10 @@
  	 
	AC_MSG_RESULT(no)
  	 
	AC_DEFINE(BROKEN_SNPRINTF)
  	 
	AC_MSG_WARN([****** Your snprintf() function is broken, complain to your 
vendor])
+ 
	],
+ 
	[
+ 
		AC_MSG_RESULT(assuming no)
+ 
		AC_DEFINE(BROKEN_SNPRINTF)
  		]
  	)
  fi
@@ -729,22 +721,21 @@

  		# Basic test to check for compatible version and correct linking
  		# *does not* test for RSA - that comes later.
- 
	AC_TRY_RUN(
+ 
	AC_TRY_LINK(
  	 
	[
-#include <string.h>
-#include <openssl/rand.h>
-int main(void)
-{
- 
char a[2048];
- 
memset(a, 0, sizeof(a));
- 
RAND_add(a, sizeof(a), sizeof(a));
- 
return(RAND_status() <= 0);
-}
+ 
		#include <string.h>
+ 
		#include <openssl/rand.h>
+ 
		],
+ 
		[
+ 
		char a[2048];
+ 
		memset(a, 0, sizeof(a));
+ 
		RAND_add(a, sizeof(a), sizeof(a));
+ 
		return(RAND_status() <= 0);
  	 
	],
  	 
	[
  	 
		found_crypto=1
  	 
		break;
- 
		], []
+ 
		], [ ]
  		)

  		if test ! -z "$found_crypto" ; then
@@ -800,26 +791,26 @@
  	else
  		LIBS="$saved_LIBS -lRSAglue -lrsaref"
  	fi
- 
AC_TRY_RUN([
-#include <string.h>
-#include <openssl/rand.h>
-#include <openssl/rsa.h>
-#include <openssl/bn.h>
-#include <openssl/sha.h>
-int main(void)
-{
- 
int num; RSA *key; static unsigned char p_in[] = "blahblah";
- 
unsigned char c[256], p[256];
- 
memset(c, 0, sizeof(c)); RAND_add(c, sizeof(c), sizeof(c));
- 
if ((key=RSA_generate_key(512, 3, NULL, NULL))==NULL) return(1);
- 
num = RSA_public_encrypt(sizeof(p_in) - 1, p_in, c, key, RSA_PKCS1_PADDING);
- 
return(-1 == RSA_private_decrypt(num, c, p, key, RSA_PKCS1_PADDING));
-}
- 
],
- 
[
+ 
AC_TRY_LINK(
+ 
	[
+ 
	#include <string.h>
+ 
	#include <openssl/rand.h>
+ 
	#include <openssl/rsa.h>
+ 
	#include <openssl/bn.h>
+ 
	#include <openssl/sha.h>
+ 
	],
+ 
	[
+ 
	int num; RSA *key; static unsigned char p_in[] = "blahblah";
+ 
	unsigned char c[256], p[256];
+ 
	memset(c, 0, sizeof(c)); RAND_add(c, sizeof(c), sizeof(c));
+ 
	if ((key=RSA_generate_key(512, 3, NULL, NULL))==NULL) return(1);
+ 
	num = RSA_public_encrypt(sizeof(p_in) - 1, p_in, c, key, RSA_PKCS1_PADDING);
+ 
	return(-1 == RSA_private_decrypt(num, c, p, key, RSA_PKCS1_PADDING));
+ 
	],
+ 
	[
  		rsa_works=1
  		break;
- 
], [])
+ 
	], [])
  done
  LIBS="$saved_LIBS"

@@ -856,6 +847,9 @@
  	[
  		AC_MSG_RESULT(no)
  		AC_MSG_ERROR(Your OpenSSL headers do not match your library)
+ 
],
+ 
[
+ 
	AC_MSG_RESULT(hoping so)
  	]
  )

@@ -885,6 +879,12 @@
  		# Default to use of the rand helper if OpenSSL doesn't
  		# seed itself
  		USE_RAND_HELPER=yes
+ 
],
+ 
[
+ 
	AC_MSG_RESULT(not sure)
+ 
	# Default to use of the rand helper if OpenSSL doesn't
+ 
	# seed itself
+ 
	USE_RAND_HELPER=yes
  	]
  )

@@ -1457,7 +1457,10 @@
  #else
  main() { exit(0); }
  #endif
- 
	], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ]
+ 
	],
+ 
	[ true ],
+ 
	[ AC_DEFINE(BROKEN_SNPRINTF) ],
+ 
	[ AC_DEFINE(BROKEN_SNPRINTF) ]
  	)
  fi
  AC_SUBST(NO_SFTP)
@@ -1776,12 +1779,11 @@
  		]
  	)
  fi
-AC_CHECK_FILE("/dev/ptc",
- 
[
- 
	AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)
- 
	have_dev_ptc=1
- 
]
-)
+
+if test -f "/dev/ptc" ; then
+ 
AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)
+ 
have_dev_ptc=1
+fi

  # Options from here on. Some of these are preset by platform above
  AC_ARG_WITH(mantype,
--- sftp-glob.c.orig	Tue Feb 12 19:10:33 2002
+++ sftp-glob.c	Wed Mar 27 14:27:30 2002
@@ -78,12 +78,9 @@
  	 * Solaris defines dirent->d_name as a one byte array and expects
  	 * you to hack around it.
  	 */
-#ifdef BROKEN_ONE_BYTE_DIRENT_D_NAME
- 
strlcpy(ret->d_name, od->dir[od->offset++]->filename, MAXPATHLEN);
-#else
  	strlcpy(ret->d_name, od->dir[od->offset++]->filename,
- 
     sizeof(ret->d_name));
-#endif
+ 
	(sizeof(ret->d_name) <= sizeof(char))?
+ 
	MAXPATHLEN: sizeof(ret->d_name));
  #ifdef __GNU_LIBRARY__
  	/*
  	 * Idiot glibc uses extensions to struct dirent for readdir with





More information about the openssh-unix-dev mailing list