Gentoo Archives: gentoo-alt

From: Fabian Groffen <grobian@g.o>
To: gentoo-alt@l.g.o
Subject: Re: [gentoo-alt] [prefix][aix] openssl
Date: Tue, 10 Apr 2007 19:11:45
Message-Id: 20070410191123.GF20922@gentoo.org
I applied this thing anyway.  I saw I already keyworded the ebuild per
accident.  Anything linked to this thing yet?  Mutt perhaps?  Would like
it if Mutt would run on AIX ;)


On 30-03-2007 23:03:49 +0200, Michael Haubenwallner wrote:
> Hi, > > had some success recently on merging openssl-0.9.8e on aix with attached > patch. > > Although the merge works, I said "some success" because I'm afraid that > the libs are linked in a wrong way: libssl.so does not runtime-depend on > libcrypto.so... > > I'm also unsure if 'thread' configure-flag is interpreted correctly. > > However, we might need to merge some dependant packages to test this, > because private openssl-binary seems to be built statically. > > Another thing to mention: > doing 'emake all rehash' does not work when doing parallel, because > 'rehash' requires openssl-binary built during 'all'. > > Can't say how this works upstream... > > /haubi/
> Index: files/openssl-0.9.8e-aix.patch > =================================================================== > --- files/openssl-0.9.8e-aix.patch (revision 0) > +++ files/openssl-0.9.8e-aix.patch (revision 0) > @@ -0,0 +1,55 @@ > +--- Configure.orig 2007-03-30 14:00:18 +0200 > ++++ Configure 2007-03-30 14:10:28 +0200 > +@@ -403,7 +403,7 @@ > + > + #### IBM's AIX. > + "aix3-cc", "cc:-O -DB_ENDIAN -qmaxmem=16384::(unknown):AIX::BN_LLONG RC4_CHAR:::", > +-"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:", > ++"aix-gcc", "gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::", > + "aix64-gcc","gcc:-O -DB_ENDIAN::-D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn::::::-X64", > + # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE > + # at build time. $OBJECT_MODE is respected at ./config stage! > +--- Makefile.shared.orig 2007-03-30 15:48:17 +0200 > ++++ Makefile.shared 2007-03-30 15:49:11 +0200 > +@@ -101,7 +101,7 @@ > + LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ > + SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ > + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ > +- nm -Pg $$SHOBJECTS | grep ' [BDT] ' | cut -f1 -d' ' > lib$(LIBNAME).exp; \ > ++ nm -Pg $$SHOBJECTS | grep ' [BD] ' | cut -f1 -d' ' > lib$(LIBNAME).exp; \ > + LIBPATH=`for x in $$LIBDEPS; do if echo $$x | grep '^ *-L' > /dev/null 2>&1; then echo $$x | sed -e 's/^ *-L//'; fi; done | uniq`; \ > + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ > + LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ > +@@ -485,26 +485,26 @@ > + > + link_o.aix: > + @ $(CALC_VERSIONS); \ > +- OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \ > ++ OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]\([0-9]*\)'`; \ > + OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \ > + SHLIB=lib$(LIBNAME).so; \ > + SHLIB_SUFFIX=; \ > +- ALLSYMSFLAGS='-bnogc'; \ > ++ ALLSYMSFLAGS='-Wl,-bnogc'; \ > + NOALLSYMSFLAGS=''; \ > +- SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \ > ++ SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G -Wl,-bE:lib$(LIBNAME).exp -Wl,-bM:SRE'; \ > + $(LINK_SO_O); rm -rf lib$(LIBNAME).exp > + link_a.aix: > + @ $(CALC_VERSIONS); \ > +- OBJECT_MODE=`expr x$(SHARED_LDFLAGS) : 'x\-[a-z]\([0-9]*\)'`; \ > ++ OBJECT_MODE=`expr "x$(SHARED_LDFLAGS)" : 'x\-[a-z]\([0-9]*\)'`; \ > + OBJECT_MODE=$${OBJECT_MODE:-32}; export OBJECT_MODE; \ > + SHLIB=lib$(LIBNAME).so; \ > + SHLIB_SUFFIX=; \ > + ALLSYMSFLAGS='-bnogc'; \ > + NOALLSYMSFLAGS=''; \ > +- SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -G -bE:lib$(LIBNAME).exp -bM:SRE'; \ > ++ SHAREDFLAGS='$(CFLAGS) $(SHARED_LDFLAGS) -Wl,-G -Wl,-bE:lib$(LIBNAME).exp -Wl,-bM:SRE'; \ > + $(LINK_SO_A_VIA_O) > + link_app.aix: > +- LDFLAGS="$(CFLAGS) -blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \ > ++ LDFLAGS="$(CFLAGS) -Wl,-blibpath:$(LIBRPATH):$${LIBPATH:-/usr/lib:/lib}"; \ > + $(LINK_APP) > + > + link_o.reliantunix: > Index: files/gentoo.config-0.9.8 > =================================================================== > --- files/gentoo.config-0.9.8 (revision 4735) > +++ files/gentoo.config-0.9.8 (working copy) > @@ -49,6 +49,7 @@ > *-linux*) system="linux";; > *-freebsd*) system="BSD";; > *-solaris*) system="solaris";; > + *-aix*) system="aix";; > *) exit 0;; > esac > > @@ -105,6 +106,10 @@ > case ${chost_machine} in > i386) machine=x86-${compiler} ;; > esac > + ;; > +aix) > + machine=${compiler} > + ;; > esac > > > Index: openssl-0.9.8e.ebuild > =================================================================== > --- openssl-0.9.8e.ebuild (revision 4735) > +++ openssl-0.9.8e.ebuild (working copy) > @@ -36,6 +36,7 @@ > epatch "${FILESDIR}"/${PN}-0.9.8-toolchain.patch > epatch "${FILESDIR}"/${PN}-0.9.8b-doc-updates.patch > epatch "${FILESDIR}"/${PN}-0.9.8-makedepend.patch #149583 > + epatch "${FILESDIR}"/${PN}-0.9.8e-aix.patch # shared aix-gcc > > # allow openssl to be cross-compiled > cp "${FILESDIR}"/gentoo.config-0.9.8 gentoo.config || die "cp cross-compile failed" > @@ -53,7 +54,9 @@ > [[ $(tc-arch) == "ppc64" ]] && replace-flags -O? -O > fi > [[ $(tc-arch) == ppc* ]] && append-flags -fno-strict-aliasing > - use userland_Darwin || append-flags -Wa,--noexecstack > + use userland_Darwin || > + [[ ${CHOST} == *-*-aix* ]] || > + append-flags -Wa,--noexecstack > > # using a library directory other than lib requires some magic > sed -i \ > @@ -118,7 +121,8 @@ > # depend is needed to use $confopts > # rehash is needed to prep the certs/ dir > emake -j1 depend || die "depend failed" > - emake all rehash || die "make all failed" > + emake all || die "make all failed" > + emake rehash || die "make rehash failed" > > # force until we get all the gentoo.config kinks worked out > if has test ${FEATURES} && ! tc-is-cross-compiler ; then
-- Fabian Groffen Gentoo on a different level -- gentoo-alt@g.o mailing list