We used the following to build when cross-compiling to the uClibc
run-time environment.

Please add support for linking against this C run-time on embedded
platforms.


Index: libssl/Configure
===================================================================
RCS file: libssl/Configure,v
retrieving revision 1.1.1.12
retrieving revision 1.21
diff -u -r1.1.1.12 -r1.21
--- libssl/Configure    15 Sep 2008 23:36:40 -0000      1.1.1.12
+++ libssl/Configure    15 Sep 2008 23:44:15 -0000      1.21
@@ -538,6 +540,9 @@
 ##### Compaq Non-Stop Kernel (Tandem)
 "tandem-c89","c89:-Ww -D__TANDEM -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 
-D_TANDEM_SOURCE -DB_ENDIAN::(unknown):::THIRTY_TWO_BIT:::",
 
+# uClinux
+"uClinux-dist","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) 
\$(LDLIBS):BN_LLONG::::::::::::\$(LIBSSL_dlfcn):linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}",
+
 );
 
 my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
Index: libssl/config
===================================================================
RCS file: libssl/config,v
retrieving revision 1.1.1.10
retrieving revision 1.7
diff -u -r1.1.1.10 -r1.7
--- libssl/config       27 Nov 2007 04:49:10 -0000      1.1.1.10
+++ libssl/config       27 Nov 2007 04:58:19 -0000      1.7
@@ -48,10 +48,10 @@
 
 # First get uname entries that we use below
 
-MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
-RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
-SYSTEM=`(uname -s) 2>/dev/null`  || SYSTEM="unknown"
-VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
+[ "$MACHINE" ] || MACHINE=`(uname -m) 2>/dev/null` || MACHINE="unknown"
+[ "$RELEASE" ] || RELEASE=`(uname -r) 2>/dev/null` || RELEASE="unknown"
+[ "$SYSTEM" ]  || SYSTEM=`(uname -s) 2>/dev/null`  || SYSTEM="unknown"
+[ "$VERSION" ] || VERSION=`(uname -v) 2>/dev/null` || VERSION="unknown"
 
 
 # Now test for ISC and SCO, since it is has a braindamaged uname.
@@ -482,6 +482,9 @@
 # script above so we end up with values in vars but that would take
 # more time that I want to waste at the moment
 case "$GUESSOS" in
+  uClinux*)
+    OUT=uClinux-dist
+       ;;
   mips2-sgi-irix)
        CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 
's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
        CPU=${CPU:-0}
Index: libssl/makefile-uclinuxdist
===================================================================
RCS file: libssl/makefile-uclinuxdist
diff -N libssl/makefile-uclinuxdist
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ libssl/makefile-uclinuxdist 31 Aug 2007 03:46:25 -0000      1.20
@@ -0,0 +1,138 @@
+#
+# this makefile gets recursed through by various bits of the build
+# so we need to only setup some things when invoked from outside
+# this directory.
+#
+# dav...@snapgear.com
+#
+
+IN_LIBSSL := true
+export IN_LIBSSL
+
+CONFIG_OPTS  := --prefix=// --install_prefix=$(shell pwd)/build/install
+
+ifdef CONFIG_USER_FLATFSD_FLATFSD
+CONFIG_OPTS += --openssldir=/etc/config
+else
+CONFIG_OPTS += --openssldir=/etc
+endif
+ifdef DISABLE_SHARED_SSL
+CONFIG_OPTS += no-shared
+else
+CONFIG_OPTS += shared
+endif
+
+CONFIG_OPTS += no-rc2
+CONFIG_OPTS += no-krb5
+CONFIG_OPTS += no-rc5
+CONFIG_OPTS += no-md2
+CONFIG_OPTS += no-idea
+#CONFIG_OPTS += no-pem
+#CONFIG_OPTS += no-md5
+#CONFIG_OPTS += no-sha
+#CONFIG_OPTS += no-hmac
+#CONFIG_OPTS += no-des
+#CONFIG_OPTS += no-aes
+#CONFIG_OPTS += no-bn
+CONFIG_OPTS += no-ec
+#CONFIG_OPTS += no-rsa
+#CONFIG_OPTS += no-dsa
+CONFIG_OPTS += no-ecdsa
+#CONFIG_OPTS += no-dh
+CONFIG_OPTS += no-ecdh
+CONFIG_OPTS += no-dso
+#CONFIG_OPTS += no-engine
+#CONFIG_OPTS += no-buffer
+#CONFIG_OPTS += no-bio
+#CONFIG_OPTS += no-stack
+#CONFIG_OPTS += no-lhash
+#CONFIG_OPTS += no-rand
+CONFIG_OPTS += no-err
+#CONFIG_OPTS += no-evp
+#CONFIG_OPTS += no-asn1
+#CONFIG_OPTS += no-x509
+#CONFIG_OPTS += no-x509v3
+#CONFIG_OPTS += no-txt_db
+#CONFIG_OPTS += no-pkcs7
+#CONFIG_OPTS += no-pkcs12
+#CONFIG_OPTS += no-comp
+#CONFIG_OPTS += no-ocsp
+#CONFIG_OPTS += no-ui
+#CONFIG_OPTS += no-store
+CONFIG_OPTS += no-pqueue
+
+# REVISIT: It would be better to have OPENSSL config options
+# which turn on this support as needed
+ifeq ($(CONFIG_USER_NESSUS_NASL)$(CONFIG_USER_SSH_SSH),)
+CONFIG_OPTS += no-ripemd
+CONFIG_OPTS += no-cast
+CONFIG_OPTS += no-rc4
+endif
+
+ifeq 
($(CONFIG_USER_NESSUS_NASL)$(CONFIG_USER_SSH_SSH)$(CONFIG_PROP_SSCEP_SSCEP),)
+CONFIG_OPTS += no-bf
+endif
+
+ifeq ($(CONFIG_USER_OPENVPN_OPENVPN)$(CONFIG_USER_WGET),)
+CONFIG_OPTS += no-md4
+endif
+
+ifdef CONFIG_OCF_OCF
+CONFIG_OPTS += --with-cryptodev
+#CONFIG_OPTS += --with-cryptodev-digests
+endif
+
+#
+# if you want engines (they are dl loaded),  a few things
+# need to be setup,  you will also need to mod everything
+# to link against -ldl if it uses libcrypto.  By default we
+# disable it (cryptodev suport is still included).
+#
+ifdef YOU_WANT_DYNAMIC_HW_ENGINES_ENABLED
+LIBSSL_dlfcn = dlfcn
+else
+CONFIG_OPTS += no-hw
+LIBSSL_dlfcn =
+endif
+
+#
+# our libs aren't in the default location yet
+#
+LDFLAGS += -L$(ROOTDIR)/lib/libssl/build
+export LDFLAGS
+
+all: build/configured
+       $(MAKE) -C build
+       $(MAKE) -C build install_sw
+
+build/configured: makefile config Configure
+       rm -rf build
+       find . -type d > .dirs
+       find . ! -type d | grep -v ./makefile > .files
+       while read t; do mkdir -p build/$$t; done < .dirs
+       while read t; do ln -s `pwd`/$$t build/$$t; done < .files
+       rm -f .dirs .files
+       chmod +x build/config
+       cd build; MACHINE=uClinux-dist ./config $(CONFIG_OPTS)
+       $(MAKE) -C build depend
+       $(MAKE) -C build links
+       touch build/configured
+
+clean:
+       -rm -rf build
+
+romfs:
+       cd build/install/lib; \
+       for i in *.so*; do \
+               if [ -L $$i ]; then \
+                       $(ROMFSINST) -s `find $$i -printf %l` /lib/$$i; \
+               elif [ -f $$i ]; then \
+                       $(ROMFSINST) /lib/$$i; \
+               fi; \
+       done
+
+romfs_user:
+       $(ROMFSINST) -e CONFIG_USER_OPENSSL_APPS build/install/bin/openssl 
/bin/openssl
+       # $(ROMFSINST) -e CONFIG_USER_OPENSSL_APPS build/install/bin/c_rehash 
/bin/c_rehash
+
+

Reply via email to