From cgrzemba at users.sourceforge.net Tue Dec 1 08:23:21 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 1 Dec 2015 07:23:21 +0000 Subject: SF.net SVN: gar:[25423] csw/mgar/pkg/php5/branches/php-5.6.x/files/ CSWap24-modphp5.postinstall Message-ID: <3p8vzs69Lnzfg@mail.opencsw.org> Revision: 25423 http://sourceforge.net/p/gar/code/25423 Author: cgrzemba Date: 2015-12-01 07:23:21 +0000 (Tue, 01 Dec 2015) Log Message: ----------- php5/branches/php-5.6.x: fix CSWap24-modphp5.postinstall Modified Paths: -------------- csw/mgar/pkg/php5/branches/php-5.6.x/files/CSWap24-modphp5.postinstall Modified: csw/mgar/pkg/php5/branches/php-5.6.x/files/CSWap24-modphp5.postinstall =================================================================== --- csw/mgar/pkg/php5/branches/php-5.6.x/files/CSWap24-modphp5.postinstall 2015-11-30 12:43:40 UTC (rev 25422) +++ csw/mgar/pkg/php5/branches/php-5.6.x/files/CSWap24-modphp5.postinstall 2015-12-01 07:23:21 UTC (rev 25423) @@ -3,7 +3,7 @@ AP2_MODULE=$CSW_PREFIX/apache2/extra/modules.load # Configure mod_php5 in httpd.conf -if [ -n "`egrep 'Include .*extra/httpd-php5.conf' $AP2_CONFIG`" ] ; then +if [ -n "`egrep '^Include .*extra/httpd-php5.conf' $AP2_CONFIG`" ] ; then echo "Existing mod_php5 configuration detected" elif [ -n "`egrep '#Include .*extra/httpd-php5.conf' $AP2_CONFIG`" ]; then echo "Re-enabling existing config" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Tue Dec 1 16:28:11 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 1 Dec 2015 15:28:11 +0000 Subject: SF.net SVN: gar:[25424] csw/mgar/pkg/php5/branches/php-5.6.x/files/php.ini. patch Message-ID: <3p96lB1FlQzst@mail.opencsw.org> Revision: 25424 http://sourceforge.net/p/gar/code/25424 Author: cgrzemba Date: 2015-12-01 15:28:11 +0000 (Tue, 01 Dec 2015) Log Message: ----------- php5/branches/php-5.6.x: apc module does not exist anymore Modified Paths: -------------- csw/mgar/pkg/php5/branches/php-5.6.x/files/php.ini.patch Modified: csw/mgar/pkg/php5/branches/php-5.6.x/files/php.ini.patch =================================================================== --- csw/mgar/pkg/php5/branches/php-5.6.x/files/php.ini.patch 2015-12-01 07:23:21 UTC (rev 25423) +++ csw/mgar/pkg/php5/branches/php-5.6.x/files/php.ini.patch 2015-12-01 15:28:11 UTC (rev 25424) @@ -1,7 +1,6 @@ /extension=xsl.so/a ;extension=zip.so ;extension=json.so -;extension=apc.so ;extension=iconv.so extension=phar.so ;extension=hash.so This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Dec 2 08:20:22 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 2 Dec 2015 07:20:22 +0000 Subject: SF.net SVN: gar:[25425] csw/mgar/gar/v2/lib/python/rest.py Message-ID: <3p9Wsr3ym0z19W@mail.opencsw.org> Revision: 25425 http://sourceforge.net/p/gar/code/25425 Author: cgrzemba Date: 2015-12-02 07:20:21 +0000 (Wed, 02 Dec 2015) Log Message: ----------- reduce ssh get_password noise Modified Paths: -------------- csw/mgar/gar/v2/lib/python/rest.py Modified: csw/mgar/gar/v2/lib/python/rest.py =================================================================== --- csw/mgar/gar/v2/lib/python/rest.py 2015-12-01 15:28:11 UTC (rev 25424) +++ csw/mgar/gar/v2/lib/python/rest.py 2015-12-02 07:20:21 UTC (rev 25425) @@ -551,10 +551,18 @@ def GetUsernameAndPassword(): + from base64 import b64decode, b64encode username = os.environ["LOGNAME"] password = None authfile = os.path.join('/etc/opt/csw/releases/auth', username) + lauthfile = os.path.join(os.environ["HOME"],'.auth_'+username) try: + with open(lauthfile, 'r') as af: + password = af.read().strip() + return username, b64decode(password) + except IOError as e: + logging.debug("%s password not cached: %s", lauthfile, e) + try: with open(authfile, 'r') as af: password = af.read().strip() except IOError as e: @@ -568,7 +576,10 @@ password = stdout.strip() else: logging.debug('Failed running %r', args) + + with os.fdopen(os.open(lauthfile,os.O_WRONLY | os.O_CREAT, 0o600),"w") as af: + af.write(b64encode(password)) - logging.debug('Could not find password for user %r.', username) + logging.debug('Looked for password for user %r.', username) return username, password This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Dec 2 09:26:38 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 2 Dec 2015 08:26:38 +0000 Subject: SF.net SVN: gar:[25426] csw/mgar/gar/v2/lib Message-ID: <3p9YLT12hBz1F1@mail.opencsw.org> Revision: 25426 http://sourceforge.net/p/gar/code/25426 Author: cgrzemba Date: 2015-12-02 08:26:37 +0000 (Wed, 02 Dec 2015) Log Message: ----------- add rest interface 'catnames-and-paths-by-basename' Modified Paths: -------------- csw/mgar/gar/v2/lib/python/checkpkg_lib.py csw/mgar/gar/v2/lib/web/pkgdb_web.py Modified: csw/mgar/gar/v2/lib/python/checkpkg_lib.py =================================================================== --- csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2015-12-02 07:20:21 UTC (rev 25425) +++ csw/mgar/gar/v2/lib/python/checkpkg_lib.py 2015-12-02 08:26:37 UTC (rev 25426) @@ -1039,7 +1039,56 @@ ".AndReturn(%s)", repr(basename), pprint.pformat(pkgs)) return pkgs + def GetPathsAndCatalognamesByBasename(self, basename, osrel, arch, catrel): + """Retrieves catalogname+versionstr of packages that have certain files. + Args: + basename: u'libfoo.so.1' + osrel: u'5.9' + arch: 'sparc', 'x86' + catrel: 'stable' + + Returns: + {"/opt/csw/lib": [("foo","1.0,REV=2015.10.10"), ("bar","2.0,REV=2001.09.01], + "/opt/csw/1/lib": [("foomore","1.0.1,REV=2015.10.10")]} + """ + pkgs = {} + sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad(osrel, arch, catrel) + + connection = m.CswFile._connection + join = [ + sqlbuilder.INNERJOINOn(None, + m.Pkginst, + m.CswFile.q.pkginst==m.Pkginst.q.id), + sqlbuilder.INNERJOINOn(None, + m.Srv4FileStats, + m.CswFile.q.srv4_file==m.Srv4FileStats.q.id), + sqlbuilder.INNERJOINOn(None, + m.Srv4FileInCatalog, + m.Srv4FileStats.q.id==m.Srv4FileInCatalog.q.srv4file), + ] + where = sqlobject.AND( + m.CswFile.q.basename==basename, + m.Srv4FileInCatalog.q.osrel==sqo_osrel, + m.Srv4FileInCatalog.q.arch==sqo_arch, + m.Srv4FileInCatalog.q.catrel==sqo_catrel, + ) + query = connection.sqlrepr( + sqlbuilder.Select( + [m.CswFile.q.path, m.Srv4FileStats.q.catalogname, m.Srv4FileStats.q.version_string], + where=where, + join=join)) + rows = connection.queryAll(query) + pkgs = {} + + for row in rows: + file_path, pkginst, version = row + pkgs.setdefault(file_path, []).append((pkginst,version)) + + logging.debug("self.error_mgr_mock.GetPathsAndCatalognamesByBasename(%s)" + ".AndReturn(%s)", repr(basename), pprint.pformat(pkgs)) + return pkgs + def GetPathsAndPkgnamesByBasedir(self, basedir, osrel, arch, catrel): sqo_osrel, sqo_arch, sqo_catrel = self.GetSqlobjectTriad( osrel, arch, catrel) Modified: csw/mgar/gar/v2/lib/web/pkgdb_web.py =================================================================== --- csw/mgar/gar/v2/lib/web/pkgdb_web.py 2015-12-02 07:20:21 UTC (rev 25425) +++ csw/mgar/gar/v2/lib/web/pkgdb_web.py 2015-12-02 08:26:37 UTC (rev 25426) @@ -59,6 +59,8 @@ r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/pkgnames-and-paths-by-basename', 'PkgnamesAndPathsByBasename', # with ?basename=... r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/pkgnames-and-paths-by-basedir', + r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/catnames-and-paths-by-basename', + 'CatnamesAndPathsByBasename', 'PkgnamesAndPathsByBasedir', # with ?basedir=... r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/for-generation/as-dicts/', 'CatalogForGenerationAsDicts', @@ -461,7 +463,32 @@ web.header('Content-Length', str(len(response))) return response +class CatnamesAndPathsByBasename(object): + def GET(self, catrel, arch, osrel): + user_data = web.input() + try: + basename = user_data.basename + except AttributeError, e: + raise web.badrequest() + send_filename = ( + '%s-%s-%s-%s-packages.txt' + % (catrel, arch, osrel, basename.replace('/', '-'))) + db_catalog = checkpkg_lib.Catalog() + try: + data = db_catalog.GetPathsAndCatalognamesByBasename( + basename, osrel, arch, catrel) + except sqlobject.main.SQLObjectNotFound: + raise web.notfound() + web.header( + 'Content-type', + 'application/x-vnd.opencsw.pkg;type=pkgname-list') + web.header('Content-Disposition', + 'attachment; filename=%s' % send_filename) + response = cjson.encode(data) + web.header('Content-Length', str(len(response))) + return response + class PkgnamesAndPathsByBasedir(object): def GET(self, catrel, arch, osrel): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Wed Dec 2 09:58:37 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Wed, 2 Dec 2015 08:58:37 +0000 Subject: SF.net SVN: gar:[25427] csw/mgar/pkg/samba/branches/samba4 Message-ID: <3p9Z3F35FCz1Hc@mail.opencsw.org> Revision: 25427 http://sourceforge.net/p/gar/code/25427 Author: janholzh Date: 2015-12-02 08:58:36 +0000 (Wed, 02 Dec 2015) Log Message: ----------- samba/branches/samba4: update to 4.3.2 Modified Paths: -------------- csw/mgar/pkg/samba/branches/samba4/Makefile csw/mgar/pkg/samba/branches/samba4/checksums Added Paths: ----------- csw/mgar/pkg/samba/branches/samba4/files/talloc_dict_sigbus.patch Modified: csw/mgar/pkg/samba/branches/samba4/Makefile =================================================================== --- csw/mgar/pkg/samba/branches/samba4/Makefile 2015-12-02 08:26:37 UTC (rev 25426) +++ csw/mgar/pkg/samba/branches/samba4/Makefile 2015-12-02 08:58:36 UTC (rev 25427) @@ -1,5 +1,5 @@ NAME = samba -VERSION = 4.3.1 +VERSION = 4.3.2 GARTYPE = v2 DESCRIPTION = Tools to access a servers filespace and printers via SMB (server) @@ -54,11 +54,14 @@ #PATCHFILES +=fix_bugid_11508 #From https://bugzilla.samba.org/show_bug.cgi?id=11511 -PATCHFILES +=fix_bugid_11511 +#PATCHFILES +=fix_bugid_11511 #From https://bugzilla.samba.org/show_bug.cgi?id=11512 -PATCHFILES +=fix_bugid_11512 +#PATCHFILES +=fix_bugid_11512 +#From https://hg.java.net/hg/solaris-userland~gate/file/73dae8fa5c34/components/samba/samba/patches/talloc_dict_sigbus.patch +PATCHFILES += talloc_dict_sigbus.patch + #fix build problems with idmap patch not in 4.3 but master #https://git.samba.org/?p=samba.git;a=patch;h=5134d29cbb2edcc2326de8896c5465afb3a0f392 PATCHFILES +=idmap_fix Modified: csw/mgar/pkg/samba/branches/samba4/checksums =================================================================== --- csw/mgar/pkg/samba/branches/samba4/checksums 2015-12-02 08:26:37 UTC (rev 25426) +++ csw/mgar/pkg/samba/branches/samba4/checksums 2015-12-02 08:58:36 UTC (rev 25427) @@ -1 +1 @@ -e63a481cad0603db1a9239d7606cbc9a samba-4.3.1.tar.gz +61188e76b272c1b1b3730bf1933a791f samba-4.3.2.tar.gz Added: csw/mgar/pkg/samba/branches/samba4/files/talloc_dict_sigbus.patch =================================================================== --- csw/mgar/pkg/samba/branches/samba4/files/talloc_dict_sigbus.patch (rev 0) +++ csw/mgar/pkg/samba/branches/samba4/files/talloc_dict_sigbus.patch 2015-12-02 08:58:36 UTC (rev 25427) @@ -0,0 +1,44 @@ +Based on patch sent me by Ralph Boehme : + +https://lists.samba.org/archive/samba-technical/2015-November/110889.html + +...patch is assumed to be released in community. + +--- a/source3/lib/talloc_dict.c 2013-06-13 02:21:02.000000000 -0700 ++++ b/source3/lib/talloc_dict.c 2015-11-27 15:11:39.212179014 -0800 +@@ -72,7 +72,11 @@ + TALLOC_FREE(rec); + return false; + } ++#if defined(__SUNPRO_C) && (defined(__sparcv9) && defined(_LP64)) ++ memcpy(&old_data, value.dptr, sizeof(old_data)); ++#else /* Do not chase memcpy on archs where unaligned address do not throw SIGBUS */ + old_data = *(void **)(value.dptr); ++#endif + TALLOC_FREE(old_data); + if (data == NULL) { + status = dbwrap_record_delete(rec); +@@ -138,6 +142,7 @@ + TDB_DATA value; + struct talloc_dict_traverse_state *state = + (struct talloc_dict_traverse_state *)private_data; ++ void *p; + + key = dbwrap_record_get_key(rec); + value = dbwrap_record_get_value(rec); +@@ -145,8 +150,14 @@ + if (value.dsize != sizeof(void *)) { + return -1; + } ++ ++#if defined(__SUNPRO_C) && (defined(__sparcv9) && defined(_LP64)) ++ memcpy(&p, value.dptr, sizeof(p)); ++#else /* Do not chase memcpy on archs where unaligned address do not throw SIGBUS */ ++ p = *(void **)(value.dptr); ++#endif + return state->fn(data_blob_const(key.dptr, key.dsize), +- *(void **)value.dptr, state->private_data); ++ p, state->private_data); + } + + /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Dec 2 12:06:17 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 2 Dec 2015 11:06:17 +0000 Subject: SF.net SVN: gar:[25428] csw/mgar/gar/v2/lib/web/pkgdb_web.py Message-ID: <3p9ctW3zKVz1NL@mail.opencsw.org> Revision: 25428 http://sourceforge.net/p/gar/code/25428 Author: cgrzemba Date: 2015-12-02 11:06:17 +0000 (Wed, 02 Dec 2015) Log Message: ----------- fix rest interface catnames-and-paths-by-basename Modified Paths: -------------- csw/mgar/gar/v2/lib/web/pkgdb_web.py Modified: csw/mgar/gar/v2/lib/web/pkgdb_web.py =================================================================== --- csw/mgar/gar/v2/lib/web/pkgdb_web.py 2015-12-02 08:58:36 UTC (rev 25427) +++ csw/mgar/gar/v2/lib/web/pkgdb_web.py 2015-12-02 11:06:17 UTC (rev 25428) @@ -58,9 +58,9 @@ 'PkgnameByFilename', r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/pkgnames-and-paths-by-basename', 'PkgnamesAndPathsByBasename', # with ?basename=... - r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/pkgnames-and-paths-by-basedir', r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/catnames-and-paths-by-basename', 'CatnamesAndPathsByBasename', + r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/pkgnames-and-paths-by-basedir', 'PkgnamesAndPathsByBasedir', # with ?basedir=... r'/rest/catalogs/([^/]+)/(sparc|i386)/(SunOS[^/]+)/for-generation/as-dicts/', 'CatalogForGenerationAsDicts', This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 2 13:31:44 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 2 Dec 2015 12:31:44 +0000 Subject: SF.net SVN: gar:[25429] csw/mgar/pkg/curl/trunk Message-ID: <3p9fn65vdGz1Rk@mail.opencsw.org> Revision: 25429 http://sourceforge.net/p/gar/code/25429 Author: dmichelsen Date: 2015-12-02 12:31:44 +0000 (Wed, 02 Dec 2015) Log Message: ----------- curl/trunk: Update to 7.46.0 and libpsl Modified Paths: -------------- csw/mgar/pkg/curl/trunk/Makefile csw/mgar/pkg/curl/trunk/checksums Modified: csw/mgar/pkg/curl/trunk/Makefile =================================================================== --- csw/mgar/pkg/curl/trunk/Makefile 2015-12-02 11:06:17 UTC (rev 25428) +++ csw/mgar/pkg/curl/trunk/Makefile 2015-12-02 12:31:44 UTC (rev 25429) @@ -1,5 +1,5 @@ NAME = curl -VERSION = 7.45.0 +VERSION = 7.46.0 GARTYPE = v2 DESCRIPTION = Command line tool and library for client-side URL transfers @@ -37,6 +37,7 @@ RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWlibz1 RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWlibidn11 +RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWlibpsl0 # We want the certs needed for ssl RUNTIME_DEP_PKGS_CSWlibcurl4 += CSWcacertificates CHECKPKG_OVERRIDES_CSWlibcurl4 += surplus-dependency|CSWcacertificates @@ -55,6 +56,7 @@ RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibrtmp0 RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibintl8 RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibpsl0 #RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibk5crypto3 #RUNTIME_DEP_PKGS_CSWlibcurl4-feature += CSWlibcom-err3 # Without the base lib the feature lib is not pulled in Modified: csw/mgar/pkg/curl/trunk/checksums =================================================================== --- csw/mgar/pkg/curl/trunk/checksums 2015-12-02 11:06:17 UTC (rev 25428) +++ csw/mgar/pkg/curl/trunk/checksums 2015-12-02 12:31:44 UTC (rev 25429) @@ -1 +1 @@ -c9a0a77f71fdc6b0f925bc3e79eb77f6 curl-7.45.0.tar.lzma +f845c513830d38c1b7ac39a98c1c2b11 curl-7.46.0.tar.lzma This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Wed Dec 2 17:18:27 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Wed, 2 Dec 2015 16:18:27 +0000 Subject: SF.net SVN: gar:[25430] csw/mgar/pkg/samba/branches/samba4/Makefile Message-ID: <3p9lpr4Wb3zKk@mail.opencsw.org> Revision: 25430 http://sourceforge.net/p/gar/code/25430 Author: janholzh Date: 2015-12-02 16:18:26 +0000 (Wed, 02 Dec 2015) Log Message: ----------- samba/branches/samba4: fix deps Modified Paths: -------------- csw/mgar/pkg/samba/branches/samba4/Makefile Modified: csw/mgar/pkg/samba/branches/samba4/Makefile =================================================================== --- csw/mgar/pkg/samba/branches/samba4/Makefile 2015-12-02 12:31:44 UTC (rev 25429) +++ csw/mgar/pkg/samba/branches/samba4/Makefile 2015-12-02 16:18:26 UTC (rev 25430) @@ -172,9 +172,9 @@ RUNTIME_DEP_PKGS_CSWsamba4-client += CSWlibpanel5 RUNTIME_DEP_PKGS_CSWsamba4-client += CSWlibpopt0 RUNTIME_DEP_PKGS_CSWsamba4-client_5.11 += CSWlibintl8 -RUNTIME_DEP_PKGS_CSWsamba4-client_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWsamba4-client_sparc_5.10 += CSWlibintl8 RUNTIME_DEP_PKGS_CSWsamba4-client += $(RUNTIME_DEP_PKGS_CSWsamba4-client_$(GAROSREL)) -RUNTIME_DEP_PKGS_CSWsamba4-client += $(RUNTIME_DEP_PKGS_CSWsamba4-client_$(GARCH)) +RUNTIME_DEP_PKGS_CSWsamba4-client += $(RUNTIME_DEP_PKGS_CSWsamba4-client_$(GARCH)_$(GAROSREL)) #CHECKPKG_OVERRIDES_CSWsamba4-client_5.11 += soname-unused #CHECKPKG_OVERRIDES_CSWsamba4-client_5.11 += missing-dependency|CSWlibtevent0 #CHECKPKG_OVERRIDES_CSWsamba4-client_5.11 += surplus-dependency|CSWsamba4-libs @@ -315,9 +315,9 @@ RUNTIME_DEP_PKGS_CSWsamba4-python += CSWsamba4-libs RUNTIME_DEP_PKGS_CSWsamba4-python += CSWlibssp0 RUNTIME_DEP_PKGS_CSWsamba4-python_5.11 += CSWlibintl8 -RUNTIME_DEP_PKGS_CSWsamba4-python_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWsamba4-python_sparc_5.10 += CSWlibintl8 RUNTIME_DEP_PKGS_CSWsamba4-python += $(RUNTIME_DEP_PKGS_CSWsamba4-python_$(GAROSREL)) -RUNTIME_DEP_PKGS_CSWsamba4-python += $(RUNTIME_DEP_PKGS_CSWsamba4-python_$(GARCH)) +RUNTIME_DEP_PKGS_CSWsamba4-python += $(RUNTIME_DEP_PKGS_CSWsamba4-python_$(GARCH)_$(GAROSREL)) #CHECKPKG_OVERRIDES_CSWsamba4-python_5.11 += soname-unused CHECKPKG_OVERRIDES_CSWsamba4-python += file-with-bad-content|/usr/local|root/opt/csw/lib/python2.7/site-packages/samba/provision/backend.py CHECKPKG_OVERRIDES_CSWsamba4-python += file-with-bad-content|/usr/local|root/opt/csw/lib/python2.6/site-packages/samba/external/testtools/tests/test_compat.py @@ -379,9 +379,9 @@ RUNTIME_DEP_PKGS_CSWnss-winbind1 += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWnss-winbind1 += CSWsamba4-libs RUNTIME_DEP_PKGS_CSWnss-winbind1_5.11 += CSWlibintl8 -RUNTIME_DEP_PKGS_CSWnss-winbind1_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWnss-winbind1_sparc_5.10 += CSWlibintl8 RUNTIME_DEP_PKGS_CSWnss-winbind1 += $(RUNTIME_DEP_PKGS_CSWnss-winbind1_$(GAROSREL)) -RUNTIME_DEP_PKGS_CSWnss-winbind1 += $(RUNTIME_DEP_PKGS_CSWnss-winbind1_$(GARCH)) +RUNTIME_DEP_PKGS_CSWnss-winbind1 += $(RUNTIME_DEP_PKGS_CSWnss-winbind1_$(GARCH)_$(GAROSREL)) CHECKPKG_OVERRIDES_CSWnss-winbind1 += file-collision|/opt/csw/lib/nss_winbind.so.1|CSWnss-winbind1|CSWsamba-nss @@ -393,9 +393,9 @@ RUNTIME_DEP_PKGS_CSWwinbind-krb5locator += CSWsamba4-libs RUNTIME_DEP_PKGS_CSWwinbind-krb5locator += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWwinbind-krb5locator_5.11 += CSWlibintl8 -RUNTIME_DEP_PKGS_CSWwinbind-krb5locator_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWwinbind-krb5locator_sparc_5.10 += CSWlibintl8 RUNTIME_DEP_PKGS_CSWwinbind-krb5locator += $(RUNTIME_DEP_PKGS_CSWwinbind-krb5locator_$(GAROSREL)) -RUNTIME_DEP_PKGS_CSWwinbind-krb5locator += $(RUNTIME_DEP_PKGS_CSWwinbind-krb5locator_$(GARCH)) +RUNTIME_DEP_PKGS_CSWwinbind-krb5locator += $(RUNTIME_DEP_PKGS_CSWwinbind-krb5locator_$(GARCH)_$(GAROSREL)) CHECKPKG_OVERRIDES_CSWwinbind-krb5locator += soname-equals-filename|file=/opt/csw/lib/winbind_krb5_locator.so PACKAGES += CSWsamba4-nss-system-links This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Wed Dec 2 17:50:33 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Wed, 2 Dec 2015 16:50:33 +0000 Subject: SF.net SVN: gar:[25431] csw/mgar/pkg/gnustep-base/trunk/Makefile Message-ID: <3p9mWl4qHmzSJ@mail.opencsw.org> Revision: 25431 http://sourceforge.net/p/gar/code/25431 Author: rmottola Date: 2015-12-02 16:50:33 +0000 (Wed, 02 Dec 2015) Log Message: ----------- gnustep-base/trunk: update dependencies on 10, fix on 9 Modified Paths: -------------- csw/mgar/pkg/gnustep-base/trunk/Makefile Modified: csw/mgar/pkg/gnustep-base/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnustep-base/trunk/Makefile 2015-12-02 16:18:26 UTC (rev 25430) +++ csw/mgar/pkg/gnustep-base/trunk/Makefile 2015-12-02 16:50:33 UTC (rev 25431) @@ -28,16 +28,17 @@ RUNTIME_DEP_PKGS_CSWgnustep-base += CSWlibxslt1 RUNTIME_DEP_PKGS_CSWgnustep-base += CSWlibxml2-2 RUNTIME_DEP_PKGS_CSWgnustep-base += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSWgnustep-base += CSWlibgnutls28 RUNTIME_DEP_PKGS_CSWgnustep-base += CSWlibgmp10 RUNTIME_DEP_PKGS_CSWgnustep-base += CSWlibiconv2 -RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibicuuc55 -RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibicudata55 -RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibicui18n55 +RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibgnutls28 +RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibicuuc56 +RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibicudata56 +RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibicui18n56 RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibobjc4 RUNTIME_DEP_PKGS_CSWgnustep-base_5.10 += CSWlibffi6 #Solaris 9 +RUNTIME_DEP_PKGS_CSWgnustep-base_5.9 += CSWlibgnutls26 RUNTIME_DEP_PKGS_CSWgnustep-base_5.9 += CSWlibgcrypt11 RUNTIME_DEP_PKGS_CSWgnustep-base_5.9 += CSWlibobjc3 RUNTIME_DEP_PKGS_CSWgnustep-base_5.9 += CSWlibicuuc49 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From opk at users.sourceforge.net Thu Dec 3 04:12:33 2015 From: opk at users.sourceforge.net (opk at users.sourceforge.net) Date: Thu, 3 Dec 2015 03:12:33 +0000 Subject: SF.net SVN: gar:[25432] csw/mgar/pkg/zsh/trunk Message-ID: <3pB2KT6BDSzkb@mail.opencsw.org> Revision: 25432 http://sourceforge.net/p/gar/code/25432 Author: opk Date: 2015-12-03 03:12:33 +0000 (Thu, 03 Dec 2015) Log Message: ----------- update zsh to 5.2 Modified Paths: -------------- csw/mgar/pkg/zsh/trunk/Makefile csw/mgar/pkg/zsh/trunk/checksums Modified: csw/mgar/pkg/zsh/trunk/Makefile =================================================================== --- csw/mgar/pkg/zsh/trunk/Makefile 2015-12-02 16:50:33 UTC (rev 25431) +++ csw/mgar/pkg/zsh/trunk/Makefile 2015-12-03 03:12:33 UTC (rev 25432) @@ -1,5 +1,5 @@ NAME = zsh -VERSION = 5.0.8 +VERSION = 5.2 GARTYPE = v2 DESCRIPTION = Powerful UNIX shell @@ -9,8 +9,8 @@ ksh, and tcsh were incorporated into zsh; many original features were added. endef -MASTER_SITES = $(SF_MIRRORS) -DISTFILES = $(NAME)-$(VERSION).tar.bz2 +MASTER_SITES = http://www.zsh.org/pub/ +DISTFILES = $(NAME)-$(VERSION).tar.xz DISTFILES += _pkgutil _mgar _alternatives PACKAGES = CSWzsh @@ -22,7 +22,6 @@ BUILD_DEP_PKGS = CSWlibpcre-dev SPKG_SOURCEURL = http://www.zsh.org -UPSTREAM_MASTER_SITES = http://www.zsh.org/pub/ CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --enable-maildir-support Modified: csw/mgar/pkg/zsh/trunk/checksums =================================================================== --- csw/mgar/pkg/zsh/trunk/checksums 2015-12-02 16:50:33 UTC (rev 25431) +++ csw/mgar/pkg/zsh/trunk/checksums 2015-12-03 03:12:33 UTC (rev 25432) @@ -1 +1 @@ -e6759e8dd7b714d624feffd0a73ba0fe zsh-5.0.8.tar.bz2 +afe96fde08b70e23c1cab1ca7a68fb34 zsh-5.2.tar.xz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Thu Dec 3 14:01:22 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Thu, 3 Dec 2015 13:01:22 +0000 Subject: SF.net SVN: gar:[25433] csw/mgar/pkg/lang-python/acme/trunk Message-ID: <3pBHNy4Q5Xz1GZ@mail.opencsw.org> Revision: 25433 http://sourceforge.net/p/gar/code/25433 Author: janholzh Date: 2015-12-03 13:01:22 +0000 (Thu, 03 Dec 2015) Log Message: ----------- lang-python/acme/trunk: update to 0.1.0 Modified Paths: -------------- csw/mgar/pkg/lang-python/acme/trunk/Makefile csw/mgar/pkg/lang-python/acme/trunk/checksums Modified: csw/mgar/pkg/lang-python/acme/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/acme/trunk/Makefile 2015-12-03 03:12:33 UTC (rev 25432) +++ csw/mgar/pkg/lang-python/acme/trunk/Makefile 2015-12-03 13:01:22 UTC (rev 25433) @@ -4,7 +4,7 @@ # Work in progress quick moving Version so don't release yet. Just to get deps in place and track NAME = acme -VERSION = 0.0.0.dev20151030 +VERSION = 0.1.0 CATEGORIES = python GARTYPE = v2 SPKG_DESC_CSWpy-acme = ACME protocol implementation in Python Modified: csw/mgar/pkg/lang-python/acme/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/acme/trunk/checksums 2015-12-03 03:12:33 UTC (rev 25432) +++ csw/mgar/pkg/lang-python/acme/trunk/checksums 2015-12-03 13:01:22 UTC (rev 25433) @@ -1 +1 @@ -1acd85f7d185a088bc889522dd1f0801 acme-0.0.0.dev20151030.tar.gz +7115ba77709b281ffaa59d853cd5337a acme-0.1.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Thu Dec 3 14:05:14 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Thu, 3 Dec 2015 13:05:14 +0000 Subject: SF.net SVN: gar:[25434] csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile Message-ID: <3pBHTM6yCCz1Jx@mail.opencsw.org> Revision: 25434 http://sourceforge.net/p/gar/code/25434 Author: janholzh Date: 2015-12-03 13:05:14 +0000 (Thu, 03 Dec 2015) Log Message: ----------- lang-python/letsencrypt/trunk: update to 0.1.0 Modified Paths: -------------- csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile Modified: csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile 2015-12-03 13:01:22 UTC (rev 25433) +++ csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile 2015-12-03 13:05:14 UTC (rev 25434) @@ -3,7 +3,7 @@ # $Id$ # Work in progress quick moving Version so don't release yet. Just to get deps in place and track NAME = letsencrypt -VERSION = 0.0.0.dev20151030 +VERSION = 0.1.0 CATEGORIES = python GARTYPE = v2 SPKG_DESC_CSWletsencrypt = Let's Encrypt client This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Thu Dec 3 14:06:01 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Thu, 3 Dec 2015 13:06:01 +0000 Subject: SF.net SVN: gar:[25435] csw/mgar/pkg/lang-python/letsencrypt/trunk/ checksums Message-ID: <3pBHVG60zpz1MJ@mail.opencsw.org> Revision: 25435 http://sourceforge.net/p/gar/code/25435 Author: janholzh Date: 2015-12-03 13:06:01 +0000 (Thu, 03 Dec 2015) Log Message: ----------- lang-python/letsencrypt/trunk: update checksums Modified Paths: -------------- csw/mgar/pkg/lang-python/letsencrypt/trunk/checksums Modified: csw/mgar/pkg/lang-python/letsencrypt/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/letsencrypt/trunk/checksums 2015-12-03 13:05:14 UTC (rev 25434) +++ csw/mgar/pkg/lang-python/letsencrypt/trunk/checksums 2015-12-03 13:06:01 UTC (rev 25435) @@ -1 +1 @@ -eb4bd8c6eed5f80f22c9cfb8cf67bbd1 letsencrypt-0.0.0.dev20151030.tar.gz +b3bc1f8a49e4953771d2fa77bf0fe9d2 letsencrypt-0.1.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Thu Dec 3 14:57:41 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Thu, 3 Dec 2015 13:57:41 +0000 Subject: SF.net SVN: gar:[25436] csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile Message-ID: <3pBJdr0R5Wz1QD@mail.opencsw.org> Revision: 25436 http://sourceforge.net/p/gar/code/25436 Author: janholzh Date: 2015-12-03 13:57:41 +0000 (Thu, 03 Dec 2015) Log Message: ----------- lang-python/letsencrypt/trunk: add dep Modified Paths: -------------- csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile Modified: csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile 2015-12-03 13:06:01 UTC (rev 25435) +++ csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile 2015-12-03 13:57:41 UTC (rev 25436) @@ -39,11 +39,9 @@ RUNTIME_DEP_PKGS_CSWletsencrypt += CSWpy-pyrfc3339 RUNTIME_DEP_PKGS_CSWletsencrypt += CSWpy-parsedatetime RUNTIME_DEP_PKGS_CSWletsencrypt += CSWpy-py2-pydialog +RUNTIME_DEP_PKGS_CSWletsencrypt += CSWpy-acme -#Add leter when released as acme is moving target also -#RUNTIME_DEP_PKGS_CSWletsencrypt += CSWpy-acme - SKIPTEST = 1 @@ -63,6 +61,7 @@ CHECKPKG_OVERRIDES_CSWletsencrypt += surplus-dependency|CSWpy-psutil CHECKPKG_OVERRIDES_CSWletsencrypt += surplus-dependency|CSWpy-configobj CHECKPKG_OVERRIDES_CSWletsencrypt += surplus-dependency|CSWpy-pyrfc3339 +CHECKPKG_OVERRIDES_CSWletsencrypt += surplus-dependency|CSWpy-acme CHECKPKG_OVERRIDES_CSWletsencrypt += surplus-dependency|CSWpy-parsedatetime CHECKPKG_OVERRIDES_CSWletsencrypt += surplus-dependency|CSWpy-py2-pydialog CHECKPKG_OVERRIDES_CSWletsencrypt += surplus-dependency|CSWpython27 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Thu Dec 3 15:31:06 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Thu, 3 Dec 2015 14:31:06 +0000 Subject: SF.net SVN: gar:[25437] csw/mgar/pkg/lang-python/acme/trunk/Makefile Message-ID: <3pBKNM6rh5z1T5@mail.opencsw.org> Revision: 25437 http://sourceforge.net/p/gar/code/25437 Author: janholzh Date: 2015-12-03 14:31:06 +0000 (Thu, 03 Dec 2015) Log Message: ----------- lang-python/acme/trunk: remove comments Modified Paths: -------------- csw/mgar/pkg/lang-python/acme/trunk/Makefile Modified: csw/mgar/pkg/lang-python/acme/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/acme/trunk/Makefile 2015-12-03 13:57:41 UTC (rev 25436) +++ csw/mgar/pkg/lang-python/acme/trunk/Makefile 2015-12-03 14:31:06 UTC (rev 25437) @@ -2,7 +2,6 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ -# Work in progress quick moving Version so don't release yet. Just to get deps in place and track NAME = acme VERSION = 0.1.0 CATEGORIES = python This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Thu Dec 3 15:31:44 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Thu, 3 Dec 2015 14:31:44 +0000 Subject: SF.net SVN: gar:[25438] csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile Message-ID: <3pBKP61QxMz1WS@mail.opencsw.org> Revision: 25438 http://sourceforge.net/p/gar/code/25438 Author: janholzh Date: 2015-12-03 14:31:44 +0000 (Thu, 03 Dec 2015) Log Message: ----------- lang-python/letsencrypt/trunk: remove comments Modified Paths: -------------- csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile Modified: csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile 2015-12-03 14:31:06 UTC (rev 25437) +++ csw/mgar/pkg/lang-python/letsencrypt/trunk/Makefile 2015-12-03 14:31:44 UTC (rev 25438) @@ -1,7 +1,7 @@ # Copyright 2009 OpenCSW # Distributed under the terms of the GNU General Public License v2 # $Id$ -# Work in progress quick moving Version so don't release yet. Just to get deps in place and track + NAME = letsencrypt VERSION = 0.1.0 CATEGORIES = python This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Dec 3 17:58:44 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 3 Dec 2015 16:58:44 +0000 Subject: SF.net SVN: gar:[25439] csw/mgar/pkg/stunnel/trunk Message-ID: <3pBNfl2slLzQp@mail.opencsw.org> Revision: 25439 http://sourceforge.net/p/gar/code/25439 Author: dmichelsen Date: 2015-12-03 16:58:43 +0000 (Thu, 03 Dec 2015) Log Message: ----------- stunnel/trunk: Update to 5.27 Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile csw/mgar/pkg/stunnel/trunk/checksums Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-12-03 14:31:44 UTC (rev 25438) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-12-03 16:58:43 UTC (rev 25439) @@ -7,8 +7,8 @@ # Test on Solaris 8 / 9 for comparison # NAME = stunnel -VERSION = 5.26 -# BETA = b1 +VERSION = 5.27 +#BETA = b3 GARTYPE = v2 DESCRIPTION = Universal SSL Wrapper Modified: csw/mgar/pkg/stunnel/trunk/checksums =================================================================== --- csw/mgar/pkg/stunnel/trunk/checksums 2015-12-03 14:31:44 UTC (rev 25438) +++ csw/mgar/pkg/stunnel/trunk/checksums 2015-12-03 16:58:43 UTC (rev 25439) @@ -1 +1 @@ -cd72bf9b7fb3577a0330df315cd88b0a stunnel-5.26.tar.gz +cb275e28413e396664dbeb5e20fc699c stunnel-5.27.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Fri Dec 4 14:05:43 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Fri, 4 Dec 2015 13:05:43 +0000 Subject: SF.net SVN: gar:[25440] csw/mgar/pkg/openssl1/trunk Message-ID: <3pBvSs23sGzx3@mail.opencsw.org> Revision: 25440 http://sourceforge.net/p/gar/code/25440 Author: janholzh Date: 2015-12-04 13:05:43 +0000 (Fri, 04 Dec 2015) Log Message: ----------- openssl1/trunk: update to 1.0.1q Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/checksums csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch Added Paths: ----------- csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-03 16:58:43 UTC (rev 25439) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-04 13:05:43 UTC (rev 25440) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = openssl -VERSION = 1.0.1p +VERSION = 1.0.1q GARTYPE = v2 # Since version 1.0.0, soname is fixed and does not follow the minor releases SONAME=1.0.0 @@ -165,6 +165,8 @@ # so we will apply the wanboot patch even if we will not enable wanboot PATCHFILES.sparc.5.11 += openssl-1.0.1m-wanboot.patch PATCHFILES.sparc.5.11 += openssl-1.0.1m-t4-engine.sparc.5.11.patch +# Next patch used to be in openssl-1.0.1m-t4-engine.sparc.5.11.patch doesn't apply corretly anymore. wait for oracle to release new version +PATCHFILES.sparc.5.11 += 0015-new_des3.c.patch PATCHFILES.sparc.5.11 += openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch PATCHFILES += $(PATCHFILES.$(GARCH).$(GAROSREL)) Modified: csw/mgar/pkg/openssl1/trunk/checksums =================================================================== --- csw/mgar/pkg/openssl1/trunk/checksums 2015-12-03 16:58:43 UTC (rev 25439) +++ csw/mgar/pkg/openssl1/trunk/checksums 2015-12-04 13:05:43 UTC (rev 25440) @@ -1 +1 @@ -7563e92327199e0067ccd0f79f436976 openssl-1.0.1p.tar.gz +54538d0cdcb912f9bc2b36268388205e openssl-1.0.1q.tar.gz Added: csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch 2015-12-04 13:05:43 UTC (rev 25440) @@ -0,0 +1,90 @@ +From 828b1d51cd182e3840df464875c6af4c01803a54 Mon Sep 17 00:00:00 2001 +From: Jan Holzhueter +Date: Fri, 4 Dec 2015 11:31:22 +0100 +Subject: [PATCH] new_des3.c + +--- + crypto/evp/e_des3.c | 49 ++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 34 insertions(+), 15 deletions(-) + +diff --git a/crypto/evp/e_des3.c b/crypto/evp/e_des3.c +index fe80d82..395c85b 100644 +--- a/crypto/evp/e_des3.c ++++ b/crypto/evp/e_des3.c +@@ -239,39 +239,58 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + } + + BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, +- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede_init_key, NULL, NULL, NULL, ++ des3_ctrl) + # define des_ede3_cfb64_cipher des_ede_cfb64_cipher + # define des_ede3_ofb_cipher des_ede_ofb_cipher + # define des_ede3_cbc_cipher des_ede_cbc_cipher + # define des_ede3_ecb_cipher des_ede_ecb_cipher + BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, +- EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, +- EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) + { + DES_cblock *deskey = (DES_cblock *)key; ++ DES_EDE_KEY *dat = data(ctx); ++ ++ dat->stream.cbc = NULL; ++#if defined(SPARC_DES_CAPABLE) ++ if (SPARC_DES_CAPABLE) { ++ int mode = ctx->cipher->flags & EVP_CIPH_MODE; ++ ++ if (mode == EVP_CIPH_CBC_MODE) { ++ des_t4_key_expand(&deskey[0],&dat->ks1); ++ des_t4_key_expand(&deskey[1],&dat->ks2); ++ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); ++ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : ++ des_t4_ede3_cbc_decrypt; ++ return 1; ++ } ++ } ++#endif + # ifdef EVP_CHECK_DES_KEY +- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) +- || DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) ++ if (DES_set_key_checked(&deskey[0],&dat->ks1) ++ || DES_set_key_checked(&deskey[1],&dat->ks2)) + return 0; + # else +- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); +- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); ++ DES_set_key_unchecked(&deskey[0],&dat->ks1); ++ DES_set_key_unchecked(&deskey[1],&dat->ks2); + # endif +- memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); ++ memcpy(&dat->ks3,&dat->ks1, sizeof(dat->ks1)); + return 1; + } + +-- +2.4.0 + Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-12-03 16:58:43 UTC (rev 25439) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-12-04 13:05:43 UTC (rev 25440) @@ -1201,80 +1201,6 @@ return 1; } -@@ -215,39 +239,58 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - - BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede_init_key, NULL, NULL, NULL, -+ des3_ctrl) - # define des_ede3_cfb64_cipher des_ede_cfb64_cipher - # define des_ede3_ofb_cipher des_ede_ofb_cipher - # define des_ede3_cbc_cipher des_ede_cbc_cipher - # define des_ede3_ecb_cipher des_ede_ecb_cipher - BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) -- ! !DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ !! DES_set_key_checked(&deskey[1],&dat->ks2)) - return 0; - # else -- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); - # endif -- memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); -+ memcpy(&dat->ks3,&dat->ks1, sizeof(dat->ks1)); - return 1; - } - @@ -255,6 +298,8 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { Added: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old 2015-12-04 13:05:43 UTC (rev 25440) @@ -0,0 +1,7826 @@ +# This file adds inline T4 instruction support to OpenSSL upstream code. +# The change was brought in from OpenSSL 1.0.2. +# +Index: Configure +=================================================================== +diff -ru openssl-1.0.1e/Configure openssl-1.0.1e/Configure +--- openssl-1.0.1e/Configure 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/Configure 2011-07-27 10:48:17.817470000 -0700 +@@ -135,7 +135,7 @@ + + my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o:"; + my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void"; +-my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; ++my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o:des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; + my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void"; + my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void"; + my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::"; +Index: crypto/sparccpuid.S +=================================================================== +diff -ru openssl-1.0.1e/crypto/sparccpuid.S openssl-1.0.1e/crypto/sparccpuid.S +--- openssl-1.0.1e/crypto/sparccpuid.S 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/sparccpuid.S 2011-07-27 10:48:17.817470000 -0700 +@@ -1,3 +1,7 @@ ++#ifdef OPENSSL_FIPSCANISTER ++#include ++#endif ++ + #if defined(__SUNPRO_C) && defined(__sparcv9) + # define ABI64 /* They've said -xarch=v9 at command line */ + #elif defined(__GNUC__) && defined(__arch64__) +@@ -235,10 +239,10 @@ + .global _sparcv9_vis1_probe + .align 8 + _sparcv9_vis1_probe: ++ .word 0x81b00d80 !fxor %f0,%f0,%f0 + add %sp,BIAS+2,%o1 +- .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 + retl +- .word 0x81b00d80 !fxor %f0,%f0,%f0 ++ .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 + .type _sparcv9_vis1_probe,#function + .size _sparcv9_vis1_probe,.-_sparcv9_vis1_probe + +@@ -251,7 +255,12 @@ + ! UltraSPARC IIe 7 + ! UltraSPARC III 7 + ! UltraSPARC T1 24 ++! SPARC T4 65(*) + ! ++! (*) result has lesser to do with VIS instruction latencies, rdtick ++! appears that slow, but it does the trick in sense that FP and ++! VIS code paths are still slower than integer-only ones. ++! + ! Numbers for T2 and SPARC64 V-VII are more than welcomed. + ! + ! It would be possible to detect specifically US-T1 by instrumenting +@@ -260,6 +269,8 @@ + .global _sparcv9_vis1_instrument + .align 8 + _sparcv9_vis1_instrument: ++ .word 0x81b00d80 !fxor %f0,%f0,%f0 ++ .word 0x85b08d82 !fxor %f2,%f2,%f2 + .word 0x91410000 !rd %tick,%o0 + .word 0x81b00d80 !fxor %f0,%f0,%f0 + .word 0x85b08d82 !fxor %f2,%f2,%f2 +@@ -314,6 +325,30 @@ + .type _sparcv9_fmadd_probe,#function + .size _sparcv9_fmadd_probe,.-_sparcv9_fmadd_probe + ++.global _sparcv9_rdcfr ++.align 8 ++_sparcv9_rdcfr: ++ retl ++ .word 0x91468000 !rd %asr26,%o0 ++.type _sparcv9_rdcfr,#function ++.size _sparcv9_rdcfr,.-_sparcv9_rdcfr ++ ++.global _sparcv9_vis3_probe ++.align 8 ++_sparcv9_vis3_probe: ++ retl ++ .word 0x81b022a0 !xmulx %g0,%g0,%g0 ++.type _sparcv9_vis3_probe,#function ++.size _sparcv9_vis3_probe,.-_sparcv9_vis3_probe ++ ++.global _sparcv9_random ++.align 8 ++_sparcv9_random: ++ retl ++ .word 0x91b002a0 !random %o0 ++.type _sparcv9_random,#function ++.size _sparcv9_random,.-_sparcv9_vis3_probe ++ + .global OPENSSL_cleanse + .align 32 + OPENSSL_cleanse: +@@ -398,6 +433,102 @@ + .size OPENSSL_cleanse,.-OPENSSL_cleanse + + #ifndef _BOOT ++.global _sparcv9_vis1_instrument_bus ++.align 8 ++_sparcv9_vis1_instrument_bus: ++ mov %o1,%o3 ! save cnt ++ .word 0x99410000 !rd %tick,%o4 ! tick ++ mov %o4,%o5 ! lasttick = tick ++ set 0,%g4 ! diff ++ ++ andn %o0,63,%g1 ++ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load ++ .word 0x8143e040 !membar #Sync ++ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit ++ .word 0x8143e040 !membar #Sync ++ ld [%o0],%o4 ++ add %o4,%g4,%g4 ++ .word 0xc9e2100c !cas [%o0],%o4,%g4 ++ ++.Loop: .word 0x99410000 !rd %tick,%o4 ++ sub %o4,%o5,%g4 ! diff=tick-lasttick ++ mov %o4,%o5 ! lasttick=tick ++ ++ andn %o0,63,%g1 ++ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load ++ .word 0x8143e040 !membar #Sync ++ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit ++ .word 0x8143e040 !membar #Sync ++ ld [%o0],%o4 ++ add %o4,%g4,%g4 ++ .word 0xc9e2100c !cas [%o0],%o4,%g4 ++ subcc %o1,1,%o1 ! --$cnt ++ bnz .Loop ++ add %o0,4,%o0 ! ++$out ++ ++ retl ++ mov %o3,%o0 ++.type _sparcv9_vis1_instrument_bus,#function ++.size _sparcv9_vis1_instrument_bus,.-_sparcv9_vis1_instrument_bus ++ ++.global _sparcv9_vis1_instrument_bus2 ++.align 8 ++_sparcv9_vis1_instrument_bus2: ++ mov %o1,%o3 ! save cnt ++ sll %o1,2,%o1 ! cnt*=4 ++ ++ .word 0x99410000 !rd %tick,%o4 ! tick ++ mov %o4,%o5 ! lasttick = tick ++ set 0,%g4 ! diff ++ ++ andn %o0,63,%g1 ++ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load ++ .word 0x8143e040 !membar #Sync ++ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit ++ .word 0x8143e040 !membar #Sync ++ ld [%o0],%o4 ++ add %o4,%g4,%g4 ++ .word 0xc9e2100c !cas [%o0],%o4,%g4 ++ ++ .word 0x99410000 !rd %tick,%o4 ! tick ++ sub %o4,%o5,%g4 ! diff=tick-lasttick ++ mov %o4,%o5 ! lasttick=tick ++ mov %g4,%g5 ! lastdiff=diff ++.Loop2: ++ andn %o0,63,%g1 ++ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load ++ .word 0x8143e040 !membar #Sync ++ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit ++ .word 0x8143e040 !membar #Sync ++ ld [%o0],%o4 ++ add %o4,%g4,%g4 ++ .word 0xc9e2100c !cas [%o0],%o4,%g4 ++ ++ subcc %o2,1,%o2 ! --max ++ bz .Ldone2 ++ nop ++ ++ .word 0x99410000 !rd %tick,%o4 ! tick ++ sub %o4,%o5,%g4 ! diff=tick-lasttick ++ mov %o4,%o5 ! lasttick=tick ++ cmp %g4,%g5 ++ mov %g4,%g5 ! lastdiff=diff ++ ++ .word 0x83408000 !rd %ccr,%g1 ++ and %g1,4,%g1 ! isolate zero flag ++ xor %g1,4,%g1 ! flip zero flag ++ ++ subcc %o1,%g1,%o1 ! conditional --$cnt ++ bnz .Loop2 ++ add %o0,%g1,%o0 ! conditional ++$out ++ ++.Ldone2: ++ srl %o1,2,%o1 ++ retl ++ sub %o3,%o1,%o0 ++.type _sparcv9_vis1_instrument_bus2,#function ++.size _sparcv9_vis1_instrument_bus2,.-_sparcv9_vis1_instrument_bus2 ++ + .section ".init",#alloc,#execinstr + call solaris_locking_setup + nop +Index: crypto/sparcv9cap.c +=================================================================== +diff -ru openssl-1.0.1e/crypto/sparcv9cap.c openssl-1.0.1e/crypto/sparcv9cap.c +--- openssl-1.0.1e/crypto/sparcv9cap.c 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/sparcv9cap.c 2011-07-27 10:48:17.817470000 -0700 +@@ -4,34 +4,58 @@ + #include + #include + #include ++#include + #include + +-#define SPARCV9_TICK_PRIVILEGED (1<<0) +-#define SPARCV9_PREFER_FPU (1<<1) +-#define SPARCV9_VIS1 (1<<2) +-#define SPARCV9_VIS2 (1<<3) /* reserved */ +-#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ ++#include "sparc_arch.h" + ++#if defined(__GNUC__) && defined(__linux) ++__attribute__((visibility("hidden"))) ++#endif + #ifndef _BOOT +-static int OPENSSL_sparcv9cap_P = SPARCV9_TICK_PRIVILEGED; ++unsigned int OPENSSL_sparcv9cap_P[2] = {SPARCV9_TICK_PRIVILEGED, 0}; + #else +-static int OPENSSL_sparcv9cap_P = SPARCV9_VIS1; ++unsigned int OPENSSL_sparcv9cap_P[2] = {SPARCV9_VIS1, 0}; + #endif + + int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, + const BN_ULONG *np, const BN_ULONG *n0, int num) + { ++ int bn_mul_mont_vis3(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, ++ const BN_ULONG *np,const BN_ULONG *n0, int num); + int bn_mul_mont_fpu(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, + const BN_ULONG *np, const BN_ULONG *n0, int num); + int bn_mul_mont_int(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, + const BN_ULONG *np, const BN_ULONG *n0, int num); + +- if (num >= 8 && !(num & 1) && +- (OPENSSL_sparcv9cap_P & (SPARCV9_PREFER_FPU | SPARCV9_VIS1)) == +- (SPARCV9_PREFER_FPU | SPARCV9_VIS1)) +- return bn_mul_mont_fpu(rp, ap, bp, np, n0, num); +- else +- return bn_mul_mont_int(rp, ap, bp, np, n0, num); ++ if (!(num&1) && num>=6) { ++ if ((num&15)==0 && num<=64 && ++ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== ++ (CFR_MONTMUL|CFR_MONTSQR)) ++ { ++ typedef int (*bn_mul_mont_f)(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_8(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_16(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_24(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_32(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); ++ static const bn_mul_mont_f funcs[4] = { ++ bn_mul_mont_t4_8, bn_mul_mont_t4_16, ++ bn_mul_mont_t4_24, bn_mul_mont_t4_32 }; ++ bn_mul_mont_f worker = funcs[num/16-1]; ++ ++ if ((*worker)(rp,ap,bp,np,n0)) return 1; ++ /* retry once and fall back */ ++ if ((*worker)(rp,ap,bp,np,n0)) return 1; ++ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); ++ } ++ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3)) ++ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); ++ else if (num>=8 && ++ (OPENSSL_sparcv9cap_P[0]&(SPARCV9_PREFER_FPU|SPARCV9_VIS1)) == ++ (SPARCV9_PREFER_FPU|SPARCV9_VIS1)) ++ return bn_mul_mont_fpu(rp,ap,bp,np,n0,num); ++ } ++ return bn_mul_mont_int(rp,ap,bp,np,n0,num); + } + + unsigned long _sparcv9_rdtick(void); +@@ -39,11 +63,18 @@ + unsigned long _sparcv9_vis1_instrument(void); + void _sparcv9_vis2_probe(void); + void _sparcv9_fmadd_probe(void); ++unsigned long _sparcv9_rdcfr(void); ++void _sparcv9_vis3_probe(void); ++unsigned long _sparcv9_random(void); ++#ifndef _BOOT ++size_t _sparcv9_vis1_instrument_bus(unsigned int *,size_t); ++size_t _sparcv9_vis1_instrument_bus2(unsigned int *,size_t,size_t); ++#endif + + #ifndef _BOOT + unsigned long OPENSSL_rdtsc(void) + { +- if (OPENSSL_sparcv9cap_P & SPARCV9_TICK_PRIVILEGED) ++ if (OPENSSL_sparcv9cap_P[0] & SPARCV9_TICK_PRIVILEGED) + #if defined(__sun) && defined(__SVR4) + return gethrtime(); + #else +@@ -52,6 +83,24 @@ + else + return _sparcv9_rdtick(); + } ++ ++size_t OPENSSL_instrument_bus(unsigned int *out,size_t cnt) ++{ ++ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == ++ SPARCV9_BLK) ++ return _sparcv9_vis1_instrument_bus(out,cnt); ++ else ++ return 0; ++} ++ ++size_t OPENSSL_instrument_bus2(unsigned int *out,size_t cnt,size_t max) ++{ ++ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == ++ SPARCV9_BLK) ++ return _sparcv9_vis1_instrument_bus2(out,cnt,max); ++ else ++ return 0; ++} + #endif + + #if defined(_BOOT) +@@ -61,7 +110,7 @@ + */ + void OPENSSL_cpuid_setup(void) + { +- OPENSSL_sparcv9cap_P = SPARCV9_VIS1; ++ OPENSSL_sparcv9cap_P[0] = SPARCV9_VIS1; + } + + #elif 0 && defined(__sun) && defined(__SVR4) +@@ -90,11 +139,11 @@ + if (!strcmp(name, "SUNW,UltraSPARC") || + /* covers II,III,IV */ + !strncmp(name, "SUNW,UltraSPARC-I", 17)) { +- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU | SPARCV9_VIS1; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU | SPARCV9_VIS1; + + /* %tick is privileged only on UltraSPARC-I/II, but not IIe */ + if (name[14] != '\0' && name[17] != '\0' && name[18] != '\0') +- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; + + return DI_WALK_TERMINATE; + } +@@ -100,7 +149,7 @@ + } + /* This is expected to catch remaining UltraSPARCs, such as T1 */ + else if (!strncmp(name, "SUNW,UltraSPARC", 15)) { +- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; + + return DI_WALK_TERMINATE; + } +@@ -119,7 +168,7 @@ + trigger = 1; + + if ((e = getenv("OPENSSL_sparcv9cap"))) { +- OPENSSL_sparcv9cap_P = strtoul(e, NULL, 0); ++ OPENSSL_sparcv9cap_P[0] = strtoul(e, NULL, 0); + return; + } + +@@ -126,15 +175,15 @@ + if (sysinfo(SI_MACHINE, si, sizeof(si)) > 0) { + if (strcmp(si, "sun4v")) + /* FPU is preferred for all CPUs, but US-T1/2 */ +- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU; + } + + if (sysinfo(SI_ISALIST, si, sizeof(si)) > 0) { + if (strstr(si, "+vis")) +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; + if (strstr(si, "+vis2")) { +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; +- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; ++ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; + return; + } + } +@@ -204,12 +253,14 @@ + trigger = 1; + + if ((e = getenv("OPENSSL_sparcv9cap"))) { +- OPENSSL_sparcv9cap_P = strtoul(e, NULL, 0); ++ OPENSSL_sparcv9cap_P[0] = strtoul(e, NULL, 0); ++ if ((e = strchr(e, ':'))) ++ OPENSSL_sparcv9cap_P[1] = strtoul(e + 1, NULL, 0); + return; + } + + /* Initial value, fits UltraSPARC-I&II... */ +- OPENSSL_sparcv9cap_P = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; + + sigfillset(&all_masked); + sigdelset(&all_masked, SIGILL); +@@ -232,18 +283,18 @@ + + if (sigsetjmp(common_jmp, 1) == 0) { + _sparcv9_rdtick(); +- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; + } + + if (sigsetjmp(common_jmp, 1) == 0) { + _sparcv9_vis1_probe(); +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; + /* detect UltraSPARC-Tx, see sparccpud.S for details... */ + if (_sparcv9_vis1_instrument() >= 12) +- OPENSSL_sparcv9cap_P &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); ++ OPENSSL_sparcv9cap_P[0] &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); + else { + _sparcv9_vis2_probe(); +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; + } + } + +@@ -249,13 +300,50 @@ + + if (sigsetjmp(common_jmp, 1) == 0) { + _sparcv9_fmadd_probe(); +- OPENSSL_sparcv9cap_P |= SPARCV9_FMADD; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; + } + ++ /* ++ * VIS3 flag is tested independently from VIS1, unlike VIS2 that is, ++ * because VIS3 defines even integer instructions. ++ */ ++ if (sigsetjmp(common_jmp,1) == 0) { ++ _sparcv9_vis3_probe(); ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; ++ } ++ ++ if (sigsetjmp(common_jmp,1) == 0) { ++ (void)_sparcv9_random(); ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_RANDOM; ++ } ++ ++ /* ++ * In wait for better solution _sparcv9_rdcfr is masked by ++ * VIS3 flag, because it goes to uninterruptable endless ++ * loop on UltraSPARC II running Solaris. Things might be ++ * different on Linux... ++ */ ++ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && ++ sigsetjmp(common_jmp, 1) == 0) { ++ OPENSSL_sparcv9cap_P[1] = (unsigned int)_sparcv9_rdcfr(); ++ } ++ + sigaction(SIGBUS, &bus_oact, NULL); + sigaction(SIGILL, &ill_oact, NULL); + + sigprocmask(SIG_SETMASK, &oset, NULL); ++ ++ if (sizeof(size_t) == 8) ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; ++#ifdef __linux ++ else ++ { ++ int ret = syscall(340); ++ ++ if (ret >= 0 && ret & 1) ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; ++ } ++#endif + } + + #endif +Index: crypto/md5/Makefile +=================================================================== +diff -ru openssl-1.0.1e/crypto/md5/Makefile openssl-1.0.1e/crypto/md5/Makefile +--- openssl-1.0.1e/crypto/md5/Makefile 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/md5/Makefile 2011-07-27 10:48:17.817470000 -0700 +@@ -52,6 +52,9 @@ + $(CC) $(CFLAGS) -E asm/md5-ia64.S | \ + $(PERL) -ne 's/;\s+/;\n/g; print;' > $@ + ++md5-sparcv9.S: asm/md5-sparcv9.pl ++ $(PERL) asm/md5-sparcv9.pl $@ $(CFLAGS) ++ + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO + +Index: crypto/md5/md5_locl.h +=================================================================== +diff -ru openssl-1.0.1e/crypto/md5/md5_locl.h openssl-1.0.1e/crypto/md5/md5_locl.h +--- openssl-1.0.1e/crypto/md5/md5_locl.h 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/md5/md5_locl.h 2011-07-27 10:48:17.817470000 -0700 +@@ -71,6 +71,8 @@ + # define md5_block_data_order md5_block_asm_data_order + # elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64) + # define md5_block_data_order md5_block_asm_data_order ++# elif defined(__sparc) || defined(__sparc__) ++# define md5_block_data_order md5_block_asm_data_order + # endif + #endif + +Index: crypto/sha/Makefile +=================================================================== +diff -ru openssl-1.0.1e/crypto/sha/Makefile openssl-1.0.1e/crypto/sha/Makefile +--- openssl-1.0.1e/crypto/sha/Makefile 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/sha/Makefile 2011-07-27 10:48:17.817470000 -0700 +@@ -68,9 +68,9 @@ + sha1-x86_64.s: asm/sha1-x86_64.pl; $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@ + sha256-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ + sha512-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ +-sha1-sparcv9.s: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) +-sha256-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) +-sha512-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) ++sha1-sparcv9.S: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) ++sha256-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) ++sha512-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) + + sha1-ppc.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $(PERLASM_SCHEME) $@ + sha256-ppc.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@ +Index: crypto/sha/asm/sha1-sparcv9.pl +=================================================================== +diff -ru openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl +--- openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 +@@ -5,6 +5,8 @@ + # project. The module is, however, dual licensed under OpenSSL and + # CRYPTOGAMS licenses depending on where you obtain it. For further + # details see http://www.openssl.org/~appro/cryptogams/. ++# ++# Hardware SPARC T4 support by David S. Miller . + # ==================================================================== + + # Performance improvement is not really impressive on pre-T1 CPU: +8% +@@ -18,6 +20,11 @@ + # ensure scalability on UltraSPARC T1, or rather to avoid decay when + # amount of active threads exceeds the number of physical cores. + ++# SPARC T4 SHA1 hardware achieves 3.72 cycles per byte, which is 3.1x ++# faster than software. Multi-process benchmark saturates at 11x ++# single-process result on 8-core processor, or ~9GBps per 2.85GHz ++# socket. ++ + $bits=32; + for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } + if ($bits==64) { $bias=2047; $frame=192; } +@@ -183,11 +190,93 @@ + .register %g3,#scratch + ___ + $code.=<<___; ++#include "sparc_arch.h" ++ + .section ".text",#alloc,#execinstr + ++#ifdef __PIC__ ++SPARC_PIC_THUNK(%g1) ++#endif ++ + .align 32 + .globl sha1_block_data_order + sha1_block_data_order: ++ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) ++ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] ++ ++ andcc %g1, CFR_SHA1, %g0 ++ be .Lsoftware ++ nop ++ ++ ld [%o0 + 0x00], %f0 ! load context ++ ld [%o0 + 0x04], %f1 ++ ld [%o0 + 0x08], %f2 ++ andcc %o1, 0x7, %g0 ++ ld [%o0 + 0x0c], %f3 ++ bne,pn %icc, .Lhwunaligned ++ ld [%o0 + 0x10], %f4 ++ ++.Lhw_loop: ++ ldd [%o1 + 0x00], %f8 ++ ldd [%o1 + 0x08], %f10 ++ ldd [%o1 + 0x10], %f12 ++ ldd [%o1 + 0x18], %f14 ++ ldd [%o1 + 0x20], %f16 ++ ldd [%o1 + 0x28], %f18 ++ ldd [%o1 + 0x30], %f20 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x38], %f22 ++ add %o1, 0x40, %o1 ++ ++ .word 0x81b02820 ! SHA1 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhw_loop ++ nop ++ ++.Lhwfinish: ++ st %f0, [%o0 + 0x00] ! store context ++ st %f1, [%o0 + 0x04] ++ st %f2, [%o0 + 0x08] ++ st %f3, [%o0 + 0x0c] ++ retl ++ st %f4, [%o0 + 0x10] ++ ++.align 8 ++.Lhwunaligned: ++ alignaddr %o1, %g0, %o1 ++ ++ ldd [%o1 + 0x00], %f10 ++.Lhwunaligned_loop: ++ ldd [%o1 + 0x08], %f12 ++ ldd [%o1 + 0x10], %f14 ++ ldd [%o1 + 0x18], %f16 ++ ldd [%o1 + 0x20], %f18 ++ ldd [%o1 + 0x28], %f20 ++ ldd [%o1 + 0x30], %f22 ++ ldd [%o1 + 0x38], %f24 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x40], %f26 ++ add %o1, 0x40, %o1 ++ ++ faligndata %f10, %f12, %f8 ++ faligndata %f12, %f14, %f10 ++ faligndata %f14, %f16, %f12 ++ faligndata %f16, %f18, %f14 ++ faligndata %f18, %f20, %f16 ++ faligndata %f20, %f22, %f18 ++ faligndata %f22, %f24, %f20 ++ faligndata %f24, %f26, %f22 ++ ++ .word 0x81b02820 ! SHA1 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop ++ for %f26, %f26, %f10 ! %f10=%f26 ++ ++ ba .Lhwfinish ++ nop ++ ++.align 16 ++.Lsoftware: + save %sp,-$frame,%sp + sllx $len,6,$len + add $inp,$len,$len +@@ -279,6 +368,62 @@ + .align 4 + ___ + +-$code =~ s/\`([^\`]*)\`/eval $1/gem; +-print $code; ++# Purpose of these subroutines is to explicitly encode VIS instructions, ++# so that one can compile the module without having to specify VIS ++# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. ++# Idea is to reserve for option to produce "universal" binary and let ++# programmer detect if current CPU is VIS capable at run-time. ++sub unvis { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my $ref,$opf; ++my %visopf = ( "faligndata" => 0x048, ++ "for" => 0x07c ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rd"; ++ ++ if ($opf=$visopf{$mnemonic}) { ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++sub unalignaddr { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); ++my $ref="$mnemonic\t$rs1,$rs2,$rd"; ++ ++ foreach ($rs1,$rs2,$rd) { ++ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } ++ else { return $ref; } ++ } ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00300|$rd<<25|$rs1<<14|$rs2, ++ $ref; ++} ++ ++foreach (split("\n",$code)) { ++ s/\`([^\`]*)\`/eval $1/ge; ++ ++ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ ++ &unvis($1,$2,$3,$4) ++ /ge; ++ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ ++ &unalignaddr($1,$2,$3,$4) ++ /ge; ++ ++ print $_,"\n"; ++} ++ + close STDOUT; + +Index: crypto/sha/asm/sha512-sparcv9.pl +=================================================================== +diff -ru openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl +--- openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 +@@ -5,6 +5,8 @@ + # project. The module is, however, dual licensed under OpenSSL and + # CRYPTOGAMS licenses depending on where you obtain it. For further + # details see http://www.openssl.org/~appro/cryptogams/. ++# ++# Hardware SPARC T4 support by David S. Miller . + # ==================================================================== + + # SHA256 performance improvement over compiler generated code varies +@@ -41,6 +43,12 @@ + # loads are always slower than one 64-bit load. Once again this + # is unlike pre-T1 UltraSPARC, where, if scheduled appropriately, + # 2x32-bit loads can be as fast as 1x64-bit ones. ++# ++# SPARC T4 SHA256/512 hardware achieves 3.17/2.01 cycles per byte, ++# which is 9.3x/11.1x faster than software. Multi-process benchmark ++# saturates at 11.5x single-process result on 8-core processor, or ++# ~11/16GBps per 2.85GHz socket. ++ + + $bits=32; + for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } +@@ -386,6 +394,8 @@ + .register %g3,#scratch + ___ + $code.=<<___; ++#include "sparc_arch.h" ++ + .section ".text",#alloc,#execinstr + + .align 64 +@@ -457,8 +467,196 @@ + } + $code.=<<___; + .size K${label},.-K${label} ++ ++#ifdef __PIC__ ++SPARC_PIC_THUNK(%g1) ++#endif ++ + .globl sha${label}_block_data_order ++.align 32 + sha${label}_block_data_order: ++ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) ++ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] ++ ++ andcc %g1, CFR_SHA${label}, %g0 ++ be .Lsoftware ++ nop ++___ ++$code.=<<___ if ($SZ==8); # SHA512 ++ ldd [%o0 + 0x00], %f0 ! load context ++ ldd [%o0 + 0x08], %f2 ++ ldd [%o0 + 0x10], %f4 ++ ldd [%o0 + 0x18], %f6 ++ ldd [%o0 + 0x20], %f8 ++ ldd [%o0 + 0x28], %f10 ++ andcc %o1, 0x7, %g0 ++ ldd [%o0 + 0x30], %f12 ++ bne,pn %icc, .Lhwunaligned ++ ldd [%o0 + 0x38], %f14 ++ ++.Lhwaligned_loop: ++ ldd [%o1 + 0x00], %f16 ++ ldd [%o1 + 0x08], %f18 ++ ldd [%o1 + 0x10], %f20 ++ ldd [%o1 + 0x18], %f22 ++ ldd [%o1 + 0x20], %f24 ++ ldd [%o1 + 0x28], %f26 ++ ldd [%o1 + 0x30], %f28 ++ ldd [%o1 + 0x38], %f30 ++ ldd [%o1 + 0x40], %f32 ++ ldd [%o1 + 0x48], %f34 ++ ldd [%o1 + 0x50], %f36 ++ ldd [%o1 + 0x58], %f38 ++ ldd [%o1 + 0x60], %f40 ++ ldd [%o1 + 0x68], %f42 ++ ldd [%o1 + 0x70], %f44 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x78], %f46 ++ add %o1, 0x80, %o1 ++ ++ .word 0x81b02860 ! SHA512 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwaligned_loop ++ nop ++ ++.Lhwfinish: ++ std %f0, [%o0 + 0x00] ! store context ++ std %f2, [%o0 + 0x08] ++ std %f4, [%o0 + 0x10] ++ std %f6, [%o0 + 0x18] ++ std %f8, [%o0 + 0x20] ++ std %f10, [%o0 + 0x28] ++ std %f12, [%o0 + 0x30] ++ retl ++ std %f14, [%o0 + 0x38] ++ ++.align 16 ++.Lhwunaligned: ++ alignaddr %o1, %g0, %o1 ++ ++ ldd [%o1 + 0x00], %f18 ++.Lhwunaligned_loop: ++ ldd [%o1 + 0x08], %f20 ++ ldd [%o1 + 0x10], %f22 ++ ldd [%o1 + 0x18], %f24 ++ ldd [%o1 + 0x20], %f26 ++ ldd [%o1 + 0x28], %f28 ++ ldd [%o1 + 0x30], %f30 ++ ldd [%o1 + 0x38], %f32 ++ ldd [%o1 + 0x40], %f34 ++ ldd [%o1 + 0x48], %f36 ++ ldd [%o1 + 0x50], %f38 ++ ldd [%o1 + 0x58], %f40 ++ ldd [%o1 + 0x60], %f42 ++ ldd [%o1 + 0x68], %f44 ++ ldd [%o1 + 0x70], %f46 ++ ldd [%o1 + 0x78], %f48 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x80], %f50 ++ add %o1, 0x80, %o1 ++ ++ faligndata %f18, %f20, %f16 ++ faligndata %f20, %f22, %f18 ++ faligndata %f22, %f24, %f20 ++ faligndata %f24, %f26, %f22 ++ faligndata %f26, %f28, %f24 ++ faligndata %f28, %f30, %f26 ++ faligndata %f30, %f32, %f28 ++ faligndata %f32, %f34, %f30 ++ faligndata %f34, %f36, %f32 ++ faligndata %f36, %f38, %f34 ++ faligndata %f38, %f40, %f36 ++ faligndata %f40, %f42, %f38 ++ faligndata %f42, %f44, %f40 ++ faligndata %f44, %f46, %f42 ++ faligndata %f46, %f48, %f44 ++ faligndata %f48, %f50, %f46 ++ ++ .word 0x81b02860 ! SHA512 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop ++ for %f50, %f50, %f18 ! %f18=%f50 ++ ++ ba .Lhwfinish ++ nop ++___ ++$code.=<<___ if ($SZ==4); # SHA256 ++ ld [%o0 + 0x00], %f0 ++ ld [%o0 + 0x04], %f1 ++ ld [%o0 + 0x08], %f2 ++ ld [%o0 + 0x0c], %f3 ++ ld [%o0 + 0x10], %f4 ++ ld [%o0 + 0x14], %f5 ++ andcc %o1, 0x7, %g0 ++ ld [%o0 + 0x18], %f6 ++ bne,pn %icc, .Lhwunaligned ++ ld [%o0 + 0x1c], %f7 ++ ++.Lhwloop: ++ ldd [%o1 + 0x00], %f8 ++ ldd [%o1 + 0x08], %f10 ++ ldd [%o1 + 0x10], %f12 ++ ldd [%o1 + 0x18], %f14 ++ ldd [%o1 + 0x20], %f16 ++ ldd [%o1 + 0x28], %f18 ++ ldd [%o1 + 0x30], %f20 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x38], %f22 ++ add %o1, 0x40, %o1 ++ ++ .word 0x81b02840 ! SHA256 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwloop ++ nop ++ ++.Lhwfinish: ++ st %f0, [%o0 + 0x00] ! store context ++ st %f1, [%o0 + 0x04] ++ st %f2, [%o0 + 0x08] ++ st %f3, [%o0 + 0x0c] ++ st %f4, [%o0 + 0x10] ++ st %f5, [%o0 + 0x14] ++ st %f6, [%o0 + 0x18] ++ retl ++ st %f7, [%o0 + 0x1c] ++ ++.align 8 ++.Lhwunaligned: ++ alignaddr %o1, %g0, %o1 ++ ++ ldd [%o1 + 0x00], %f10 ++.Lhwunaligned_loop: ++ ldd [%o1 + 0x08], %f12 ++ ldd [%o1 + 0x10], %f14 ++ ldd [%o1 + 0x18], %f16 ++ ldd [%o1 + 0x20], %f18 ++ ldd [%o1 + 0x28], %f20 ++ ldd [%o1 + 0x30], %f22 ++ ldd [%o1 + 0x38], %f24 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x40], %f26 ++ add %o1, 0x40, %o1 ++ ++ faligndata %f10, %f12, %f8 ++ faligndata %f12, %f14, %f10 ++ faligndata %f14, %f16, %f12 ++ faligndata %f16, %f18, %f14 ++ faligndata %f18, %f20, %f16 ++ faligndata %f20, %f22, %f18 ++ faligndata %f22, %f24, %f20 ++ faligndata %f24, %f26, %f22 ++ ++ .word 0x81b02840 ! SHA256 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop ++ for %f26, %f26, %f10 ! %f10=%f26 ++ ++ ba .Lhwfinish ++ nop ++___ ++$code.=<<___; ++.align 16 ++.Lsoftware: + save %sp,`-$frame-$locals`,%sp + and $inp,`$align-1`,$tmp31 + sllx $len,`log(16*$SZ)/log(2)`,$len +@@ -589,6 +787,62 @@ + .align 4 + ___ + +-$code =~ s/\`([^\`]*)\`/eval $1/gem; +-print $code; ++# Purpose of these subroutines is to explicitly encode VIS instructions, ++# so that one can compile the module without having to specify VIS ++# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. ++# Idea is to reserve for option to produce "universal" binary and let ++# programmer detect if current CPU is VIS capable at run-time. ++sub unvis { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my $ref,$opf; ++my %visopf = ( "faligndata" => 0x048, ++ "for" => 0x07c ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rd"; ++ ++ if ($opf=$visopf{$mnemonic}) { ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++sub unalignaddr { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); ++my $ref="$mnemonic\t$rs1,$rs2,$rd"; ++ ++ foreach ($rs1,$rs2,$rd) { ++ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } ++ else { return $ref; } ++ } ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00300|$rd<<25|$rs1<<14|$rs2, ++ $ref; ++} ++ ++foreach (split("\n",$code)) { ++ s/\`([^\`]*)\`/eval $1/ge; ++ ++ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ ++ &unvis($1,$2,$3,$4) ++ /ge; ++ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ ++ &unalignaddr($1,$2,$3,$4) ++ /ge; ++ ++ print $_,"\n"; ++} ++ + close STDOUT; +Index: crypto/des/Makefile +=================================================================== +diff -ru openssl-1.0.1e/crypto/des/Makefile.orig openssl-1.0.1e/crypto/des/Makefile +--- a/crypto/des/Makefile ++++ b/crypto/des/Makefile +@@ -61,6 +61,8 @@ des: des.o cbc3_enc.o lib + + des_enc-sparc.S: asm/des_enc.m4 + m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S ++dest4-sparcv9.s: asm/dest4-sparcv9.pl ++ $(PERL) asm/dest4-sparcv9.pl $(CFLAGS) > $@ + + des-586.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl + $(PERL) asm/des-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@ +Index: crypto/evp/e_des.c +=================================================================== +diff -ru openssl-1.0.1e/crypto/evp/e_des.c.orig openssl-1.0.1e/crypto/evp/e_des.c +--- a/crypto/evp/e_des.c ++++ b/crypto/evp/e_des.c +@@ -65,6 +65,30 @@ + # include + # include + ++typedef struct { ++ union { double align; DES_key_schedule ks; } ks; ++ union { ++ void (*cbc)(const void *,void *,size_t,const void *,void *); ++ } stream; ++} EVP_DES_KEY; ++ ++#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) ++/* ---------^^^ this is not a typo, just a way to detect that ++ * assembler support was in general requested... ++ */ ++#include "sparc_arch.h" ++ ++extern unsigned int OPENSSL_sparcv9cap_P[]; ++ ++#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) ++ ++void des_t4_key_expand(const void *key, DES_key_schedule *ks); ++void des_t4_cbc_encrypt(const void *inp,void *out,size_t len, ++ DES_key_schedule *ks,unsigned char iv[8]); ++void des_t4_cbc_decrypt(const void *inp,void *out,size_t len, ++ DES_key_schedule *ks,unsigned char iv[8]); ++#endif ++ + static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc); + static int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); +@@ -102,6 +126,12 @@ static int des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl) + { ++ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; ++ ++ if (dat->stream.cbc) { ++ (*dat->stream.cbc)(in,out,inl,&dat->ks.ks,ctx->iv); ++ return 1; ++ } + while (inl >= EVP_MAXCHUNK) { + DES_ncbc_encrypt(in, out, (long)EVP_MAXCHUNK, ctx->cipher_data, + (DES_cblock *)ctx->iv, ctx->encrypt); +@@ -179,16 +209,16 @@ + return 1; + } + +-BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64, ++BLOCK_CIPHER_defs(des, EVP_DES_KEY, NID_des, 8, 8, 8, 64, + EVP_CIPH_RAND_KEY, des_init_key, NULL, + EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) + + +-BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 1, ++BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 1, + EVP_CIPH_RAND_KEY, des_init_key, NULL, + EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) + +-BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 8, ++BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 8, + EVP_CIPH_RAND_KEY, des_init_key, NULL, + EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) + +@@ -196,8 +226,23 @@ static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) + { + DES_cblock *deskey = (DES_cblock *)key; ++ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; ++ ++ dat->stream.cbc = NULL; ++#if defined(SPARC_DES_CAPABLE) ++ if (SPARC_DES_CAPABLE) { ++ int mode = ctx->cipher->flags & EVP_CIPH_MODE; ++ ++ if (mode == EVP_CIPH_CBC_MODE) { ++ des_t4_key_expand(key,&dat->ks.ks); ++ dat->stream.cbc = enc ? des_t4_cbc_encrypt : ++ des_t4_cbc_decrypt; ++ return 1; ++ } ++ } ++#endif + # ifdef EVP_CHECK_DES_KEY +- if (DES_set_key_checked(deskey, ctx->cipher_data) != 0) ++ if (DES_set_key_checked(deskey, dat->ks.ks) != 0) + return 0; + # else + DES_set_key_unchecked(deskey, ctx->cipher_data); +Index: crypto/evp/e_des3.c +=================================================================== +diff -ru openssl-1.0.1e/crypto/evp/e_des3.c.orig openssl-1.0.1e/crypto/evp/e_des3.c +--- a/crypto/evp/e_des3.c ++++ b/crypto/evp/e_des3.c +@@ -65,6 +65,32 @@ + # include + # include + ++typedef struct { ++ union { double align; DES_key_schedule ks[3]; } ks; ++ union { ++ void (*cbc)(const void *,void *,size_t,const void *,void *); ++ } stream; ++} DES_EDE_KEY; ++#define ks1 ks.ks[0] ++#define ks2 ks.ks[1] ++#define ks3 ks.ks[2] ++ ++#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) ++/* ---------^^^ this is not a typo, just a way to detect that ++ * assembler support was in general requested... */ ++#include "sparc_arch.h" ++ ++extern unsigned int OPENSSL_sparcv9cap_P[]; ++ ++#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) ++ ++void des_t4_key_expand(const void *key, DES_key_schedule *ks); ++void des_t4_ede3_cbc_encrypt(const void *inp,void *out,size_t len, ++ DES_key_schedule *ks,unsigned char iv[8]); ++void des_t4_ede3_cbc_decrypt(const void *inp,void *out,size_t len, ++ DES_key_schedule *ks,unsigned char iv[8]); ++#endif ++ + # ifndef OPENSSL_FIPS + + static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, +@@ -75,12 +100,6 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + + static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); + +-typedef struct { +- DES_key_schedule ks1; /* key schedule */ +- DES_key_schedule ks2; /* key schedule (for ede) */ +- DES_key_schedule ks3; /* key schedule (for ede3) */ +-} DES_EDE_KEY; +- + # define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data) + + /* +@@ -123,6 +117,7 @@ static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t inl) + { ++ DES_EDE_KEY *dat = data(ctx); + # ifdef KSSL_DEBUG + { + int i; +@@ -134,11 +155,15 @@ + fprintf(stderr, "\n"); + } + # endif /* KSSL_DEBUG */ ++ if (dat->stream.cbc) { ++ (*dat->stream.cbc)(in,out,inl,&dat->ks,ctx->iv); ++ return 1; ++ } ++ + while (inl >= EVP_MAXCHUNK) { + DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, +- &data(ctx)->ks1, &data(ctx)->ks2, +- &data(ctx)->ks3, (DES_cblock *)ctx->iv, +- ctx->encrypt); ++ &dat->ks1, &dat->ks2, &dat->ks3, ++ (DES_cblock *)ctx->iv, ctx->encrypt); + inl -= EVP_MAXCHUNK; + in += EVP_MAXCHUNK; + out += EVP_MAXCHUNK; +@@ -145,9 +170,8 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + } + if (inl) + DES_ede3_cbc_encrypt(in, out, (long)inl, +- &data(ctx)->ks1, &data(ctx)->ks2, +- &data(ctx)->ks3, (DES_cblock *)ctx->iv, +- ctx->encrypt); ++ &dat->ks1, &dat->ks2, &dat->ks3, ++ (DES_cblock *)ctx->iv, ctx->encrypt); + return 1; + } + +@@ -215,39 +239,58 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + } + + BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, +- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede_init_key, NULL, NULL, NULL, ++ des3_ctrl) + # define des_ede3_cfb64_cipher des_ede_cfb64_cipher + # define des_ede3_ofb_cipher des_ede_ofb_cipher + # define des_ede3_cbc_cipher des_ede_cbc_cipher + # define des_ede3_ecb_cipher des_ede_ecb_cipher + BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, +- EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, +- EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) + { + DES_cblock *deskey = (DES_cblock *)key; ++ DES_EDE_KEY *dat = data(ctx); ++ ++ dat->stream.cbc = NULL; ++#if defined(SPARC_DES_CAPABLE) ++ if (SPARC_DES_CAPABLE) { ++ int mode = ctx->cipher->flags & EVP_CIPH_MODE; ++ ++ if (mode == EVP_CIPH_CBC_MODE) { ++ des_t4_key_expand(&deskey[0],&dat->ks1); ++ des_t4_key_expand(&deskey[1],&dat->ks2); ++ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); ++ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : ++ des_t4_ede3_cbc_decrypt; ++ return 1; ++ } ++ } ++#endif + # ifdef EVP_CHECK_DES_KEY +- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) +- ! !DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) ++ if (DES_set_key_checked(&deskey[0],&dat->ks1) ++ !! DES_set_key_checked(&deskey[1],&dat->ks2)) + return 0; + # else +- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); +- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); ++ DES_set_key_unchecked(&deskey[0],&dat->ks1); ++ DES_set_key_unchecked(&deskey[1],&dat->ks2); + # endif +- memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); ++ memcpy(&dat->ks3,&dat->ks1, sizeof(dat->ks1)); + return 1; + } + +@@ -255,6 +298,8 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) + { + DES_cblock *deskey = (DES_cblock *)key; ++ DES_EDE_KEY *dat = data(ctx); ++ + # ifdef KSSL_DEBUG + { + int i; +@@ -272,15 +317,30 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + } + # endif /* KSSL_DEBUG */ + ++ dat->stream.cbc = NULL; ++#if defined(SPARC_DES_CAPABLE) ++ if (SPARC_DES_CAPABLE) { ++ int mode = ctx->cipher->flags & EVP_CIPH_MODE; ++ ++ if (mode == EVP_CIPH_CBC_MODE) { ++ des_t4_key_expand(&deskey[0],&dat->ks1); ++ des_t4_key_expand(&deskey[1],&dat->ks2); ++ des_t4_key_expand(&deskey[2],&dat->ks3); ++ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : ++ des_t4_ede3_cbc_decrypt; ++ return 1; ++ } ++ } ++#endif + # ifdef EVP_CHECK_DES_KEY +- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) +- || DES_set_key_checked(&deskey[1], &data(ctx)->ks2) +- || DES_set_key_checked(&deskey[2], &data(ctx)->ks3)) ++ if (DES_set_key_checked(&deskey[0],&dat->ks1) ++ || DES_set_key_checked(&deskey[1],&dat->ks2) ++ || DES_set_key_checked(&deskey[2],&dat->ks3)) + return 0; + # else +- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); +- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); +- DES_set_key_unchecked(&deskey[2], &data(ctx)->ks3); ++ DES_set_key_unchecked(&deskey[0],&dat->ks1); ++ DES_set_key_unchecked(&deskey[1],&dat->ks2); ++ DES_set_key_unchecked(&deskey[2],&dat->ks3); + # endif + return 1; + } +Index: openssl/crypto/bn/Makefile +=================================================================== +diff -ru openssl-1.0.1e/crypto/bn/Makefile openssl-1.0.1e/crypto/bn/Makefile.new +--- openssl-1.0.1e/crypto/bn/Makefile 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/crypto/bn/Makefile 2011-07-27 10:48:17.817470000 -0700 +@@ -77,6 +77,12 @@ + $(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@ + sparcv9-mont.s: asm/sparcv9-mont.pl + $(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@ ++vis3-mont.s: asm/vis3-mont.pl ++ $(PERL) asm/vis3-mont.pl $(CFLAGS) > $@ ++sparct4-mont.S: asm/sparct4-mont.pl ++ $(PERL) asm/sparct4-mont.pl $(CFLAGS) > $@ ++sparcv9-gf2m.S: asm/sparcv9-gf2m.pl ++ $(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) > $@ + + bn-mips3.o: asm/mips3.s + @if [ "$(CC)" = "gcc" ]; then \ +Index: openssl/crypto/bn/bn_exp.c +=================================================================== +diff -ru openssl-1.0.1e/crypto/bn/bn_exp.c openssl-1.0.1e/crypto/bn/bn_exp.c.new +--- bn_exp.c 2011/10/29 19:25:13 1.38 ++++ bn_exp.c 2012/11/17 10:34:11 1.39 +@@ -122,8 +122,15 @@ + # ifndef alloca + # define alloca(s) __builtin_alloca((s)) + # endif ++#else ++#include + #endif + ++#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) ++# include "sparc_arch.h" ++extern unsigned int OPENSSL_sparcv9cap_P[]; ++#endif ++ + /* maximum precomputation table size for *variable* sliding windows */ + #define TABLE_SIZE 32 + +@@ -464,8 +471,16 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + wstart = bits - 1; /* The top bit of the window */ + wend = 0; /* The bottom bit of the window */ + ++#if 1 /* by Shay Gueron's suggestion */ ++ j = mont->N.top; /* borrow j */ ++ if (bn_wexpand(r,j) == NULL) goto err; ++ r->d[0] = (0-m->d[0])&BN_MASK2; /* 2^(top*BN_BITS2) - m */ ++ for(i=1;id[i] = (~m->d[i])&BN_MASK2; ++ r->top = j; ++#else + if (!BN_to_montgomery(r, BN_value_one(), mont, ctx)) + goto err; ++#endif + for (;;) { + if (BN_is_bit_set(p, wstart) == 0) { + if (!start) { +@@ -515,6 +530,17 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + if (wstart < 0) + break; + } ++#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) ++ if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3|SPARCV9_PREFER_FPU)) { ++ j = mont->N.top; /* borrow j */ ++ val[0]->d[0] = 1; /* borrow val[0] */ ++ for (i=1;id[i] = 0; ++ val[0]->top = j; ++ if (!BN_mod_mul_montgomery(rr, r, val[0], mont, ctx)) ++ goto err; ++ } else ++#endif + if (!BN_from_montgomery(rr, r, mont, ctx)) + goto err; + ret = 1; +@@ -526,6 +552,26 @@ err: + return (ret); + } + ++#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) ++static BN_ULONG bn_get_bits(const BIGNUM *a, int bitpos) { ++ BN_ULONG ret = 0; ++ int wordpos; ++ ++ wordpos = bitpos / BN_BITS2; ++ bitpos %= BN_BITS2; ++ if (wordpos>=0 && wordpos < a->top) { ++ ret = a->d[wordpos]&BN_MASK2; ++ if (bitpos) { ++ ret >>= bitpos; ++ if (++wordpos < a->top) ++ ret |= a->d[wordpos]<<(BN_BITS2-bitpos); ++ } ++ } ++ ++ return ret & BN_MASK2; ++} ++#endif ++ + /* + * BN_mod_exp_mont_consttime() stores the precomputed powers in a specific + * layout so that accessing any of these table values shows the same access +@@ -594,6 +640,9 @@ + int powerbufLen = 0; + unsigned char *powerbuf = NULL; + BIGNUM tmp, am; ++#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) ++ unsigned int t4=0; ++#endif + + bn_check_top(a); + bn_check_top(p); +@@ -628,10 +677,18 @@ + + /* Get the window size to use with size of p. */ + window = BN_window_bits_for_ctime_exponent_size(bits); ++#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) ++ if (window>=5 && (top&15)==0 && top<=64 && ++ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== ++ (CFR_MONTMUL|CFR_MONTSQR) && (t4=OPENSSL_sparcv9cap_P[0])) ++ window=5; ++ else ++#endif + #if defined(OPENSSL_BN_ASM_MONT5) + if (window == 6 && bits <= 1024) + window = 5; /* ~5% improvement of 2048-bit RSA sign */ + #endif ++ (void) 0; + + /* + * Allocate a buffer large enough to hold all of the pre-computed powers +@@ -670,14 +727,14 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + tmp.flags = am.flags = BN_FLG_STATIC_DATA; + + /* prepare a^0 in Montgomery domain */ +-#if 1 +- if (!BN_to_montgomery(&tmp, BN_value_one(), mont, ctx)) +- goto err; +-#else ++#if 1 /* by Shay Gueron's suggestion */ + tmp.d[0] = (0 - m->d[0]) & BN_MASK2; /* 2^(top*BN_BITS2) - m */ + for (i = 1; i < top; i++) + tmp.d[i] = (~m->d[i]) & BN_MASK2; + tmp.top = top; ++#else ++ if (!BN_to_montgomery(&tmp,BN_value_one(),mont,ctx)) ++ goto err; + #endif + + /* prepare a^1 in Montgomery domain */ +@@ -689,6 +746,122 @@ + } else if (!BN_to_montgomery(&am, a, mont, ctx)) + goto err; + ++#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) ++ if (t4) { ++ typedef int (*bn_pwr5_mont_f)(BN_ULONG *tp,const BN_ULONG *np, ++ const BN_ULONG *n0,const void *table,int power,int bits); ++ int bn_pwr5_mont_t4_8(BN_ULONG *tp,const BN_ULONG *np, ++ const BN_ULONG *n0,const void *table,int power,int bits); ++ int bn_pwr5_mont_t4_16(BN_ULONG *tp,const BN_ULONG *np, ++ const BN_ULONG *n0,const void *table,int power,int bits); ++ int bn_pwr5_mont_t4_24(BN_ULONG *tp,const BN_ULONG *np, ++ const BN_ULONG *n0,const void *table,int power,int bits); ++ int bn_pwr5_mont_t4_32(BN_ULONG *tp,const BN_ULONG *np, ++ const BN_ULONG *n0,const void *table,int power,int bits); ++ static const bn_pwr5_mont_f pwr5_funcs[4] = { ++ bn_pwr5_mont_t4_8, bn_pwr5_mont_t4_16, ++ bn_pwr5_mont_t4_24, bn_pwr5_mont_t4_32 }; ++ bn_pwr5_mont_f pwr5_worker = pwr5_funcs[top/16-1]; ++ ++ typedef int (*bn_mul_mont_f)(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_8(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_16(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_24(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); ++ int bn_mul_mont_t4_32(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); ++ static const bn_mul_mont_f mul_funcs[4] = { ++ bn_mul_mont_t4_8, bn_mul_mont_t4_16, ++ bn_mul_mont_t4_24, bn_mul_mont_t4_32 }; ++ bn_mul_mont_f mul_worker = mul_funcs[top/16-1]; ++ ++ void bn_mul_mont_vis3(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *bp,const BN_ULONG *np, ++ const BN_ULONG *n0,int num); ++ void bn_mul_mont_t4(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *bp,const BN_ULONG *np, ++ const BN_ULONG *n0,int num); ++ void bn_mul_mont_gather5_t4(BN_ULONG *rp,const BN_ULONG *ap, ++ const void *table,const BN_ULONG *np, ++ const BN_ULONG *n0,int num,int power); ++ void bn_flip_n_scatter5_t4(const BN_ULONG *inp,size_t num, ++ void *table,size_t power); ++ void bn_gather5_t4(BN_ULONG *out,size_t num, ++ void *table,size_t power); ++ void bn_flip_t4(BN_ULONG *dst,BN_ULONG *src,size_t num); ++ ++ BN_ULONG *np=mont->N.d, *n0=mont->n0; ++ int stride = 5*(6-(top/16-1)); /* multiple of 5, but less than 32 */ ++ ++ /* ++ * BN_to_montgomery can contaminate words above .top ++ * [in BN_DEBUG[_DEBUG] build]... ++ */ ++ for (i=am.top; iN.d,top); ++ ++ bits--; ++ for (wvalue=0, i=bits%5; i>=0; i--,bits--) ++ wvalue = (wvalue<<1)+BN_is_bit_set(p,bits); ++ bn_gather5_t4(tmp.d,top,powerbuf,wvalue); ++ ++ /* Scan the exponent one window at a time starting from the most ++ * significant bits. ++ */ ++ while (bits >= 0) { ++ if (bits < stride) ++ stride = bits+1; ++ bits -= stride; ++ wvalue = (bn_get_bits(p,bits+1)); ++ ++ if ((*pwr5_worker)(tmp.d,np,n0,powerbuf,wvalue,stride)) ++ continue; ++ /* retry once and fall back */ ++ if ((*pwr5_worker)(tmp.d,np,n0,powerbuf,wvalue,stride)) ++ continue; ++ ++ bits += stride-5; ++ wvalue >>= stride-5; ++ wvalue &= 31; ++ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); ++ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); ++ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); ++ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); ++ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); ++ bn_mul_mont_gather5_t4(tmp.d,tmp.d,powerbuf,np,n0,top,wvalue); ++ } ++ ++ bn_flip_t4(tmp.d,tmp.d,top); ++ top *= 2; ++ /* back to 32-bit domain */ ++ tmp.top=top; ++ bn_correct_top(&tmp); ++ OPENSSL_cleanse(np,top*sizeof(BN_ULONG)); ++ } else ++#endif + #if defined(OPENSSL_BN_ASM_MONT5) + if (window == 5 && top > 1) { + /* +@@ -844,6 +1017,15 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + } + + /* Convert the final result from montgomery to standard format */ ++#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) ++ if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3|SPARCV9_PREFER_FPU)) { ++ am.d[0] = 1; /* borrow am */ ++ for (i = 1; i < top; i++) ++ am.d[i] = 0; ++ if (!BN_mod_mul_montgomery(rr,&tmp,&am,mont,ctx)) ++ goto err; ++ } else ++#endif + if (!BN_from_montgomery(rr, &tmp, mont, ctx)) + goto err; + ret = 1; +Index: openssl/apps/speed.c +=================================================================== +diff -ru openssl-1.0.1e/apps/spped.c openssl-1.0.1e/apps/speed.c +--- openssl-1.0.1e/apps/speed.c 2011-05-24 17:02:24.000000000 -0700 ++++ openssl-1.0.1e/apps/spped.c 2011-07-27 10:48:17.817470000 -0700 +@@ -1586,8 +1586,7 @@ + print_message(names[D_MD5], c[D_MD5][j], lengths[j]); + Time_F(START); + for (count = 0, run = 1; COND(c[D_MD5][j]); count++) +- EVP_Digest(&(buf[0]), (unsigned long)lengths[j], &(md5[0]), +- NULL, EVP_get_digestbyname("md5"), NULL); ++ MD5(buf, lengths[j], md5); + d = Time_F(STOP); + print_result(D_MD5, j, count, d); + } +@@ -1622,8 +1621,7 @@ + print_message(names[D_SHA1], c[D_SHA1][j], lengths[j]); + Time_F(START); + for (count = 0, run = 1; COND(c[D_SHA1][j]); count++) +- EVP_Digest(buf, (unsigned long)lengths[j], &(sha[0]), NULL, +- EVP_sha1(), NULL); ++ SHA1(buf, lengths[j], sha); + d = Time_F(STOP); + print_result(D_SHA1, j, count, d); + } +Index: openssl/crypto/aes/Makefile +=================================================================== +--- Makefile Thu May 2 13:42:37 2013 ++++ Makefile.orig Thu May 2 13:41:51 2013 +@@ -69,6 +69,9 @@ + aes-sparcv9.s: asm/aes-sparcv9.pl + $(PERL) asm/aes-sparcv9.pl $(CFLAGS) > $@ + ++aest4-sparcv9.s: asm/aest4-sparcv9.pl ++ $(PERL) asm/aest4-sparcv9.pl $(CFLAGS) > $@ ++ + aes-ppc.s: asm/aes-ppc.pl + $(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@ + +Index: openssl/crypto/evp/e_aes.c +=================================================================== +--- e_aes.c Mon Feb 11 07:26:04 2013 ++++ e_aes.c.56 Thu May 2 14:26:35 2013 +@@ -56,12 +58,11 @@ + # include + # include + # include "evp_locl.h" +-# ifndef OPENSSL_FIPS + # include "modes_lcl.h" + # include + + typedef struct { +- AES_KEY ks; ++ union { double align; AES_KEY ks; } ks; + block128_f block; + union { + cbc128_f cbc; +@@ -70,7 +69,7 @@ + } EVP_AES_KEY; + + typedef struct { +- AES_KEY ks; /* AES key schedule to use */ ++ union { double align; AES_KEY ks; } ks; /* AES key schedule to use */ + int key_set; /* Set if key initialised */ + int iv_set; /* Set if an iv is set */ + GCM128_CONTEXT gcm; +@@ -83,7 +82,7 @@ + } EVP_AES_GCM_CTX; + + typedef struct { +- AES_KEY ks1, ks2; /* AES key schedules to use */ ++ union { double align; AES_KEY ks; } ks1, ks2; /* AES key schedules to use */ + XTS128_CONTEXT xts; + void (*stream) (const unsigned char *in, + unsigned char *out, size_t length, +@@ -92,7 +91,7 @@ + } EVP_AES_XTS_CTX; + + typedef struct { +- AES_KEY ks; /* AES key schedule to use */ ++ union { double align; AES_KEY ks; } ks; /* AES key schedule to use */ + int key_set; /* Set if key initialised */ + int iv_set; /* Set if an iv is set */ + int tag_set; /* Set if tag is valid */ +@@ -155,7 +154,7 @@ + defined(_M_AMD64) || defined(_M_X64) || \ + defined(__INTEL__) ) + +-extern unsigned int OPENSSL_ia32cap_P[2]; ++extern unsigned int OPENSSL_ia32cap_P[]; + + # ifdef VPAES_ASM + # define VPAES_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(41-32))) +@@ -297,7 +296,7 @@ + if (!iv && !key) + return 1; + if (key) { +- aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); ++ aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); + CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f) aesni_encrypt); + gctx->ctr = (ctr128_f) aesni_ctr32_encrypt_blocks; + /* +@@ -336,17 +335,17 @@ + if (key) { + /* key_len is two AES keys */ + if (enc) { +- aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); ++ aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) aesni_encrypt; + xctx->stream = aesni_xts_encrypt; + } else { +- aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); ++ aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) aesni_decrypt; + xctx->stream = aesni_xts_decrypt; + } + + aesni_set_encrypt_key(key + ctx->key_len / 2, +- ctx->key_len * 4, &xctx->ks2); ++ ctx->key_len * 4, &xctx->ks2.ks); + xctx->xts.block2 = (block128_f) aesni_encrypt; + + xctx->xts.key1 = &xctx->ks1; +@@ -371,7 +370,7 @@ + if (!iv && !key) + return 1; + if (key) { +- aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); ++ aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); + CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, + &cctx->ks, (block128_f) aesni_encrypt); + cctx->str = enc ? (ccm128_f) aesni_ccm64_encrypt_blocks : +@@ -432,6 +431,364 @@ + const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ + { return AESNI_CAPABLE?&aesni_##keylen##_##mode:&aes_##keylen##_##mode; } + ++#elif defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) ++ ++#include "sparc_arch.h" ++ ++extern unsigned int OPENSSL_sparcv9cap_P[]; ++ ++#define SPARC_AES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_AES) ++ ++void aes_t4_set_encrypt_key (const unsigned char *key, int bits, ++ AES_KEY *ks); ++void aes_t4_set_decrypt_key (const unsigned char *key, int bits, ++ AES_KEY *ks); ++void aes_t4_encrypt (const unsigned char *in, unsigned char *out, ++ const AES_KEY *key); ++void aes_t4_decrypt (const unsigned char *in, unsigned char *out, ++ const AES_KEY *key); ++/* ++ * Key-length specific subroutines were chosen for following reason. ++ * Each SPARC T4 core can execute up to 8 threads which share core's ++ * resources. Loading as much key material to registers allows to ++ * minimize references to shared memory interface, as well as amount ++ * of instructions in inner loops [much needed on T4]. But then having ++ * non-key-length specific routines would require conditional branches ++ * either in inner loops or on subroutines' entries. Former is hardly ++ * acceptable, while latter means code size increase to size occupied ++ * by multiple key-length specfic subroutines, so why fight? ++ */ ++void aes128_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, ++ size_t len, const AES_KEY *key, ++ unsigned char *ivec); ++void aes128_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, ++ size_t len, const AES_KEY *key, ++ unsigned char *ivec); ++void aes192_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, ++ size_t len, const AES_KEY *key, ++ unsigned char *ivec); ++void aes192_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, ++ size_t len, const AES_KEY *key, ++ unsigned char *ivec); ++void aes256_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, ++ size_t len, const AES_KEY *key, ++ unsigned char *ivec); ++void aes256_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, ++ size_t len, const AES_KEY *key, ++ unsigned char *ivec); ++void aes128_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, ++ size_t blocks, const AES_KEY *key, ++ unsigned char *ivec); ++void aes192_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, ++ size_t blocks, const AES_KEY *key, ++ unsigned char *ivec); ++void aes256_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, ++ size_t blocks, const AES_KEY *key, ++ unsigned char *ivec); ++ ++static int aes_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, ++ const unsigned char *iv, int enc) ++{ ++ int ret, mode, bits; ++ EVP_AES_KEY *dat = (EVP_AES_KEY *)ctx->cipher_data; ++ ++ mode = ctx->cipher->flags & EVP_CIPH_MODE; ++ bits = ctx->key_len*8; ++ if ((mode == EVP_CIPH_ECB_MODE || mode == EVP_CIPH_CBC_MODE) && !enc) { ++ ret = 0; ++ aes_t4_set_decrypt_key(key, bits, ctx->cipher_data); ++ dat->block = (block128_f)aes_t4_decrypt; ++ switch (bits) { ++ case 128: ++ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? ++ (cbc128_f)aes128_t4_cbc_decrypt : ++ NULL; ++ break; ++ case 192: ++ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? ++ (cbc128_f)aes192_t4_cbc_decrypt : ++ NULL; ++ break; ++ case 256: ++ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? ++ (cbc128_f)aes256_t4_cbc_decrypt : ++ NULL; ++ break; ++ default: ++ ret = -1; ++ } ++ } else { ++ ret = 0; ++ aes_t4_set_encrypt_key(key, bits, ctx->cipher_data); ++ dat->block = (block128_f)aes_t4_encrypt; ++ switch (bits) { ++ case 128: ++ if (mode==EVP_CIPH_CBC_MODE) ++ dat->stream.cbc = (cbc128_f)aes128_t4_cbc_encrypt; ++ else if (mode==EVP_CIPH_CTR_MODE) ++ dat->stream.ctr = (ctr128_f)aes128_t4_ctr32_encrypt; ++ else ++ dat->stream.cbc = NULL; ++ break; ++ case 192: ++ if (mode==EVP_CIPH_CBC_MODE) ++ dat->stream.cbc = (cbc128_f)aes192_t4_cbc_encrypt; ++ else if (mode==EVP_CIPH_CTR_MODE) ++ dat->stream.ctr = (ctr128_f)aes192_t4_ctr32_encrypt; ++ else ++ dat->stream.cbc = NULL; ++ break; ++ case 256: ++ if (mode==EVP_CIPH_CBC_MODE) ++ dat->stream.cbc = (cbc128_f)aes256_t4_cbc_encrypt; ++ else if (mode==EVP_CIPH_CTR_MODE) ++ dat->stream.ctr = (ctr128_f)aes256_t4_ctr32_encrypt; ++ else ++ dat->stream.cbc = NULL; ++ break; ++ default: ++ ret = -1; ++ } ++ } ++ ++ if (ret < 0) { ++ EVPerr(EVP_F_AES_T4_INIT_KEY,EVP_R_AES_KEY_SETUP_FAILED); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++#define aes_t4_cbc_cipher aes_cbc_cipher ++static int aes_t4_cbc_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, ++ const unsigned char *in, size_t len); ++ ++#define aes_t4_ecb_cipher aes_ecb_cipher ++static int aes_t4_ecb_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, ++ const unsigned char *in, size_t len); ++ ++#define aes_t4_ofb_cipher aes_ofb_cipher ++static int aes_t4_ofb_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, ++ const unsigned char *in,size_t len); ++ ++#define aes_t4_cfb_cipher aes_cfb_cipher ++static int aes_t4_cfb_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, ++ const unsigned char *in,size_t len); ++ ++#define aes_t4_cfb8_cipher aes_cfb8_cipher ++static int aes_t4_cfb8_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, ++ const unsigned char *in,size_t len); ++ ++#define aes_t4_cfb1_cipher aes_cfb1_cipher ++static int aes_t4_cfb1_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, ++ const unsigned char *in,size_t len); ++ ++#define aes_t4_ctr_cipher aes_ctr_cipher ++static int aes_t4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, ++ const unsigned char *in, size_t len); ++ ++static int aes_t4_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, ++ const unsigned char *iv, int enc) ++{ ++ EVP_AES_GCM_CTX *gctx = ctx->cipher_data; ++ if (!iv && !key) ++ return 1; ++ if (key) { ++ int bits = ctx->key_len * 8; ++ aes_t4_set_encrypt_key(key, bits, &gctx->ks.ks); ++ CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, ++ (block128_f)aes_t4_encrypt); ++ switch (bits) { ++ case 128: ++ gctx->ctr = (ctr128_f)aes128_t4_ctr32_encrypt; ++ break; ++ case 192: ++ gctx->ctr = (ctr128_f)aes192_t4_ctr32_encrypt; ++ break; ++ case 256: ++ gctx->ctr = (ctr128_f)aes256_t4_ctr32_encrypt; ++ break; ++ default: ++ return 0; ++ } ++ /* If we have an iv can set it directly, otherwise use ++ * saved IV. ++ */ ++ if (iv == NULL && gctx->iv_set) ++ iv = gctx->iv; ++ if (iv) { ++ CRYPTO_gcm128_setiv(&gctx->gcm, iv, gctx->ivlen); ++ gctx->iv_set = 1; ++ } ++ gctx->key_set = 1; ++ } else { ++ /* If key set use IV, otherwise copy */ ++ if (gctx->key_set) ++ CRYPTO_gcm128_setiv(&gctx->gcm, iv, gctx->ivlen); ++ else ++ memcpy(gctx->iv, iv, gctx->ivlen); ++ gctx->iv_set = 1; ++ gctx->iv_gen = 0; ++ } ++ return 1; ++} ++ ++#define aes_t4_gcm_cipher aes_gcm_cipher ++static int aes_t4_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, ++ const unsigned char *in, size_t len); ++ ++static int aes_t4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, ++ const unsigned char *iv, int enc) ++{ ++ EVP_AES_XTS_CTX *xctx = ctx->cipher_data; ++ if (!iv && !key) ++ return 1; ++ ++ if (key) { ++ int bits = ctx->key_len * 4; ++ /* key_len is two AES keys */ ++ if (enc) { ++ aes_t4_set_encrypt_key(key, bits, &xctx->ks1.ks); ++ xctx->xts.block1 = (block128_f)aes_t4_encrypt; ++#if 0 /* not yet */ ++ switch (bits) { ++ case 128: ++ xctx->stream = aes128_t4_xts_encrypt; ++ break; ++ case 192: ++ xctx->stream = aes192_t4_xts_encrypt; ++ break; ++ case 256: ++ xctx->stream = aes256_t4_xts_encrypt; ++ break; ++ default: ++ return 0; ++ } ++#endif ++ } else { ++ aes_t4_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); ++ xctx->xts.block1 = (block128_f)aes_t4_decrypt; ++#if 0 /* not yet */ ++ switch (bits) { ++ case 128: ++ xctx->stream = aes128_t4_xts_decrypt; ++ break; ++ case 192: ++ xctx->stream = aes192_t4_xts_decrypt; ++ break; ++ case 256: ++ xctx->stream = aes256_t4_xts_decrypt; ++ break; ++ default: ++ return 0; ++ } ++#endif ++ } ++ ++ aes_t4_set_encrypt_key(key + ctx->key_len/2, ++ ctx->key_len * 4, &xctx->ks2.ks); ++ xctx->xts.block2 = (block128_f)aes_t4_encrypt; ++ ++ xctx->xts.key1 = &xctx->ks1; ++ } ++ ++ if (iv) { ++ xctx->xts.key2 = &xctx->ks2; ++ memcpy(ctx->iv, iv, 16); ++ } ++ ++ return 1; ++} ++ ++#define aes_t4_xts_cipher aes_xts_cipher ++static int aes_t4_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, ++ const unsigned char *in, size_t len); ++ ++static int aes_t4_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, ++ const unsigned char *iv, int enc) ++{ ++ EVP_AES_CCM_CTX *cctx = ctx->cipher_data; ++ if (!iv && !key) ++ return 1; ++ if (key) { ++ int bits = ctx->key_len * 8; ++ aes_t4_set_encrypt_key(key, bits, &cctx->ks.ks); ++ CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, ++ &cctx->ks, (block128_f)aes_t4_encrypt); ++#if 0 /* not yet */ ++ switch (bits) { ++ case 128: ++ cctx->str = enc?(ccm128_f)aes128_t4_ccm64_encrypt : ++ (ccm128_f)ae128_t4_ccm64_decrypt; ++ break; ++ case 192: ++ cctx->str = enc?(ccm128_f)aes192_t4_ccm64_encrypt : ++ (ccm128_f)ae192_t4_ccm64_decrypt; ++ break; ++ case 256: ++ cctx->str = enc?(ccm128_f)aes256_t4_ccm64_encrypt : ++ (ccm128_f)ae256_t4_ccm64_decrypt; ++ break; ++ default: ++ return 0; ++ } ++#endif ++ cctx->key_set = 1; ++ } ++ if (iv) { ++ memcpy(ctx->iv, iv, 15 - cctx->L); ++ cctx->iv_set = 1; ++ } ++ return 1; ++} ++ ++#define aes_t4_ccm_cipher aes_ccm_cipher ++static int aes_t4_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, ++ const unsigned char *in, size_t len); ++ ++#define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ ++static const EVP_CIPHER aes_t4_##keylen##_##mode = { \ ++ nid##_##keylen##_##nmode,blocksize,keylen/8,ivlen, \ ++ flags|EVP_CIPH_##MODE##_MODE, \ ++ aes_t4_init_key, \ ++ aes_t4_##mode##_cipher, \ ++ NULL, \ ++ sizeof(EVP_AES_KEY), \ ++ NULL,NULL,NULL,NULL }; \ ++static const EVP_CIPHER aes_##keylen##_##mode = { \ ++ nid##_##keylen##_##nmode,blocksize, \ ++ keylen/8,ivlen, \ ++ flags|EVP_CIPH_##MODE##_MODE, \ ++ aes_init_key, \ ++ aes_##mode##_cipher, \ ++ NULL, \ ++ sizeof(EVP_AES_KEY), \ ++ NULL,NULL,NULL,NULL }; \ ++const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ ++{ return SPARC_AES_CAPABLE?&aes_t4_##keylen##_##mode:&aes_##keylen##_##mode; } ++ ++#define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags) \ ++static const EVP_CIPHER aes_t4_##keylen##_##mode = { \ ++ nid##_##keylen##_##mode,blocksize, \ ++ (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ ++ flags|EVP_CIPH_##MODE##_MODE, \ ++ aes_t4_##mode##_init_key, \ ++ aes_t4_##mode##_cipher, \ ++ aes_##mode##_cleanup, \ ++ sizeof(EVP_AES_##MODE##_CTX), \ ++ NULL,NULL,aes_##mode##_ctrl,NULL }; \ ++static const EVP_CIPHER aes_##keylen##_##mode = { \ ++ nid##_##keylen##_##mode,blocksize, \ ++ (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ ++ flags|EVP_CIPH_##MODE##_MODE, \ ++ aes_##mode##_init_key, \ ++ aes_##mode##_cipher, \ ++ aes_##mode##_cleanup, \ ++ sizeof(EVP_AES_##MODE##_CTX), \ ++ NULL,NULL,aes_##mode##_ctrl,NULL }; \ ++const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ ++{ return SPARC_AES_CAPABLE?&aes_t4_##keylen##_##mode:&aes_##keylen##_##mode; } ++ + # else + + # define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ +@@ -480,7 +837,7 @@ + && !enc) + # ifdef BSAES_CAPABLE + if (BSAES_CAPABLE && mode == EVP_CIPH_CBC_MODE) { +- ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); ++ ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); + dat->block = (block128_f) AES_decrypt; + dat->stream.cbc = (cbc128_f) bsaes_cbc_encrypt; + } else +@@ -487,7 +844,7 @@ + # endif + # ifdef VPAES_CAPABLE + if (VPAES_CAPABLE) { +- ret = vpaes_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); ++ ret = vpaes_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); + dat->block = (block128_f) vpaes_decrypt; + dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? + (cbc128_f) vpaes_cbc_encrypt : NULL; +@@ -494,7 +851,7 @@ + } else + # endif + { +- ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); ++ ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); + dat->block = (block128_f) AES_decrypt; + dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? + (cbc128_f) AES_cbc_encrypt : NULL; +@@ -508,7 +865,7 @@ + # endif + # ifdef VPAES_CAPABLE + if (VPAES_CAPABLE) { +- ret = vpaes_set_encrypt_key(key, ctx->key_len * 8, &dat->ks); ++ ret = vpaes_set_encrypt_key(key, ctx->key_len * 8, &dat->ks.ks); + dat->block = (block128_f) vpaes_encrypt; + dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? + (cbc128_f) vpaes_cbc_encrypt : NULL; +@@ -515,7 +872,7 @@ + } else + # endif + { +- ret = AES_set_encrypt_key(key, ctx->key_len * 8, &dat->ks); ++ ret = AES_set_encrypt_key(key, ctx->key_len*8, &dat->ks.ks); + dat->block = (block128_f) AES_encrypt; + dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? + (cbc128_f) AES_cbc_encrypt : NULL; +@@ -810,7 +1167,7 @@ + do { + # ifdef BSAES_CAPABLE + if (BSAES_CAPABLE) { +- AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); ++ AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); + CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, + (block128_f) AES_encrypt); + gctx->ctr = (ctr128_f) bsaes_ctr32_encrypt_blocks; +@@ -819,7 +1176,7 @@ + # endif + # ifdef VPAES_CAPABLE + if (VPAES_CAPABLE) { +- vpaes_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); ++ vpaes_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); + CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, + (block128_f) vpaes_encrypt); + gctx->ctr = NULL; +@@ -828,7 +1185,7 @@ + # endif + (void)0; /* terminate potentially open 'else' */ + +- AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); ++ AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); + CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, + (block128_f) AES_encrypt); + # ifdef AES_CTR_ASM +@@ -1049,15 +1406,15 @@ + # ifdef VPAES_CAPABLE + if (VPAES_CAPABLE) { + if (enc) { +- vpaes_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); ++ vpaes_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) vpaes_encrypt; + } else { +- vpaes_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); ++ vpaes_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) vpaes_decrypt; + } + + vpaes_set_encrypt_key(key + ctx->key_len / 2, +- ctx->key_len * 4, &xctx->ks2); ++ ctx->key_len * 4, &xctx->ks2.ks); + xctx->xts.block2 = (block128_f) vpaes_encrypt; + + xctx->xts.key1 = &xctx->ks1; +@@ -1067,15 +1424,15 @@ + (void)0; /* terminate potentially open 'else' */ + + if (enc) { +- AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); ++ AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) AES_encrypt; + } else { +- AES_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); ++ AES_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); + xctx->xts.block1 = (block128_f) AES_decrypt; + } + + AES_set_encrypt_key(key + ctx->key_len / 2, +- ctx->key_len * 4, &xctx->ks2); ++ ctx->key_len * 4, &xctx->ks2.ks); + xctx->xts.block2 = (block128_f) AES_encrypt; + + xctx->xts.key1 = &xctx->ks1; +@@ -1196,7 +1553,7 @@ + do { + # ifdef VPAES_CAPABLE + if (VPAES_CAPABLE) { +- vpaes_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); ++ vpaes_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); + CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, + &cctx->ks, (block128_f) vpaes_encrypt); + cctx->str = NULL; +@@ -1204,7 +1561,7 @@ + break; + } + # endif +- AES_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); ++ AES_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); + CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, + &cctx->ks, (block128_f) AES_encrypt); + cctx->str = NULL; +@@ -1285,5 +1642,4 @@ + EVP_CIPH_FLAG_FIPS | CUSTOM_FLAGS) + BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, ccm, CCM, + EVP_CIPH_FLAG_FIPS | CUSTOM_FLAGS) +-# endif + #endif +Index: openssl/crypto/evp/evp.h +=================================================================== +--- evp.h Mon Feb 11 07:26:04 2013 ++++ evp.h.new Thu May 2 14:31:55 2013 +@@ -1325,6 +1325,7 @@ + # define EVP_F_AESNI_INIT_KEY 165 + # define EVP_F_AESNI_XTS_CIPHER 176 + # define EVP_F_AES_INIT_KEY 133 ++# define EVP_F_AES_T4_INIT_KEY 178 + # define EVP_F_AES_XTS 172 + # define EVP_F_AES_XTS_CIPHER 175 + # define EVP_F_ALG_MODULE_INIT 177 +Index: openssl/crypto/evp/evp_err.c +=================================================================== +--- evp_err.c Mon Feb 11 07:26:04 2013 ++++ evp_err.c.new Thu May 2 14:33:24 2013 +@@ -73,6 +73,7 @@ + {ERR_FUNC(EVP_F_AESNI_INIT_KEY), "AESNI_INIT_KEY"}, + {ERR_FUNC(EVP_F_AESNI_XTS_CIPHER), "AESNI_XTS_CIPHER"}, + {ERR_FUNC(EVP_F_AES_INIT_KEY), "AES_INIT_KEY"}, ++ {ERR_FUNC(EVP_F_AES_T4_INIT_KEY), "AES_T4_INIT_KEY"}, + {ERR_FUNC(EVP_F_AES_XTS), "AES_XTS"}, + {ERR_FUNC(EVP_F_AES_XTS_CIPHER), "AES_XTS_CIPHER"}, + {ERR_FUNC(EVP_F_ALG_MODULE_INIT), "ALG_MODULE_INIT"}, +Index: crypto/sparc_arch.h +=================================================================== +diff -uNr openssl-1.0.1m/crypto/sparc_arch.h openssl-1.0.1m/crypto/sparc_arch.h +--- openssl-1.0.1m/crypto/sparc_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/sparc_arch.h 2015-03-21 16:27:38.578043100 +0100 +@@ -0,0 +1,101 @@ ++#ifndef __SPARC_ARCH_H__ ++#define __SPARC_ARCH_H__ ++ ++#define SPARCV9_TICK_PRIVILEGED (1<<0) ++#define SPARCV9_PREFER_FPU (1<<1) ++#define SPARCV9_VIS1 (1<<2) ++#define SPARCV9_VIS2 (1<<3) /* reserved */ ++#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ ++#define SPARCV9_BLK (1<<5) /* VIS1 block copy */ ++#define SPARCV9_VIS3 (1<<6) ++#define SPARCV9_RANDOM (1<<7) ++#define SPARCV9_64BIT_STACK (1<<8) ++ ++/* ++ * OPENSSL_sparcv9cap_P[1] is copy of Compatibility Feature Register, ++ * %asr26, SPARC-T4 and later. There is no SPARCV9_CFR bit in ++ * OPENSSL_sparcv9cap_P[0], as %cfr copy is sufficient... ++ */ ++#define CFR_AES 0x00000001 /* Supports AES opcodes */ ++#define CFR_DES 0x00000002 /* Supports DES opcodes */ ++#define CFR_KASUMI 0x00000004 /* Supports KASUMI opcodes */ ++#define CFR_CAMELLIA 0x00000008 /* Supports CAMELLIA opcodes */ ++#define CFR_MD5 0x00000010 /* Supports MD5 opcodes */ ++#define CFR_SHA1 0x00000020 /* Supports SHA1 opcodes */ ++#define CFR_SHA256 0x00000040 /* Supports SHA256 opcodes */ ++#define CFR_SHA512 0x00000080 /* Supports SHA512 opcodes */ ++#define CFR_MPMUL 0x00000100 /* Supports MPMUL opcodes */ ++#define CFR_MONTMUL 0x00000200 /* Supports MONTMUL opcodes */ ++#define CFR_MONTSQR 0x00000400 /* Supports MONTSQR opcodes */ ++#define CFR_CRC32C 0x00000800 /* Supports CRC32C opcodes */ ++ ++#if defined(OPENSSL_PIC) && !defined(__PIC__) ++#define __PIC__ ++#endif ++ ++#if defined(__SUNPRO_C) && defined(__sparcv9) && !defined(__arch64__) ++#define __arch64__ ++#endif ++ ++#define SPARC_PIC_THUNK(reg) \ ++ .align 32; \ ++.Lpic_thunk: \ ++ jmp %o7 + 8; \ ++ add %o7, reg, reg; ++ ++#define SPARC_PIC_THUNK_CALL(reg) \ ++ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ ++ call .Lpic_thunk; \ ++ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; ++ ++#if 1 ++#define SPARC_SETUP_GOT_REG(reg) SPARC_PIC_THUNK_CALL(reg) ++#else ++#define SPARC_SETUP_GOT_REG(reg) \ ++ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ ++ call .+8; \ ++ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; \ ++ add %o7, reg, reg ++#endif ++ ++#if defined(__arch64__) ++ ++#define SPARC_LOAD_ADDRESS(SYM, reg) \ ++ setx SYM, %o7, reg; ++#define LDPTR ldx ++#define SIZE_T_CC %xcc ++#define STACK_FRAME 192 ++#define STACK_BIAS 2047 ++#define STACK_7thARG (STACK_BIAS+176) ++ ++#else ++ ++#define SPARC_LOAD_ADDRESS(SYM, reg) \ ++ set SYM, reg; ++#define LDPTR ld ++#define SIZE_T_CC %icc ++#define STACK_FRAME 112 ++#define STACK_BIAS 0 ++#define STACK_7thARG 92 ++#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) SPARC_LOAD_ADDRESS(SYM, reg) ++ ++#endif ++ ++#ifdef __PIC__ ++#undef SPARC_LOAD_ADDRESS ++#undef SPARC_LOAD_ADDRESS_LEAF ++#define SPARC_LOAD_ADDRESS(SYM, reg) \ ++ SPARC_SETUP_GOT_REG(reg); \ ++ sethi %hi(SYM), %o7; \ ++ or %o7, %lo(SYM), %o7; \ ++ LDPTR [reg + %o7], reg; ++#endif ++ ++#ifndef SPARC_LOAD_ADDRESS_LEAF ++#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) \ ++ mov %o7, tmp; \ ++ SPARC_LOAD_ADDRESS(SYM, reg) \ ++ mov tmp, %o7; ++#endif ++ ++#endif /* __SPARC_ARCH_H__ */ +Index: crypto/md5/asm/md5-sparcv9.pl +=================================================================== +diff -uNr openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl +--- openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 +@@ -0,0 +1,434 @@ ++#!/usr/bin/env perl ++ ++# ==================================================================== ++# Written by Andy Polyakov for the OpenSSL ++# project. The module is, however, dual licensed under OpenSSL and ++# CRYPTOGAMS licenses depending on where you obtain it. For further ++# details see http://www.openssl.org/~appro/cryptogams/. ++# ++# Hardware SPARC T4 support by David S. Miller . ++# ==================================================================== ++ ++# MD5 for SPARCv9, 6.9 cycles per byte on UltraSPARC, >40% faster than ++# code generated by Sun C 5.2. ++ ++# SPARC T4 MD5 hardware achieves 3.20 cycles per byte, which is 2.1x ++# faster than software. Multi-process benchmark saturates at 12x ++# single-process result on 8-core processor, or ~11GBps per 2.85GHz ++# socket. ++ ++$bits=32; ++for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } ++if ($bits==64) { $bias=2047; $frame=192; } ++else { $bias=0; $frame=112; } ++ ++$output=shift; ++open STDOUT,">$output"; ++ ++use integer; ++ ++($ctx,$inp,$len)=("%i0","%i1","%i2"); # input arguments ++ ++# 64-bit values ++ at X=("%o0","%o1","%o2","%o3","%o4","%o5","%o7","%g1","%g2"); ++$tx="%g3"; ++($AB,$CD)=("%g4","%g5"); ++ ++# 32-bit values ++ at V=($A,$B,$C,$D)=map("%l$_",(0..3)); ++($t1,$t2,$t3,$saved_asi)=map("%l$_",(4..7)); ++($shr,$shl1,$shl2)=("%i3","%i4","%i5"); ++ ++my @K=( 0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee, ++ 0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501, ++ 0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be, ++ 0x6b901122,0xfd987193,0xa679438e,0x49b40821, ++ ++ 0xf61e2562,0xc040b340,0x265e5a51,0xe9b6c7aa, ++ 0xd62f105d,0x02441453,0xd8a1e681,0xe7d3fbc8, ++ 0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed, ++ 0xa9e3e905,0xfcefa3f8,0x676f02d9,0x8d2a4c8a, ++ ++ 0xfffa3942,0x8771f681,0x6d9d6122,0xfde5380c, ++ 0xa4beea44,0x4bdecfa9,0xf6bb4b60,0xbebfbc70, ++ 0x289b7ec6,0xeaa127fa,0xd4ef3085,0x04881d05, ++ 0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665, ++ ++ 0xf4292244,0x432aff97,0xab9423a7,0xfc93a039, ++ 0x655b59c3,0x8f0ccc92,0xffeff47d,0x85845dd1, ++ 0x6fa87e4f,0xfe2ce6e0,0xa3014314,0x4e0811a1, ++ 0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391, 0 ); ++ ++sub R0 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (7,12,17,22)[$i%4]; ++ my $j = ($i+1)/2; ++ ++ if ($i&1) { ++ $code.=<<___; ++ srlx @X[$j],$shr, at X[$j] ! align X[`$i+1`] ++ and $b,$t1,$t1 ! round $i ++ sllx @X[$j+1],$shl1,$tx ++ add $t2,$a,$a ++ sllx $tx,$shl2,$tx ++ xor $d,$t1,$t1 ++ or $tx, at X[$j], at X[$j] ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add @X[$j],$t2,$t2 ! X[`$i+1`]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ xor $b,$c,$t1 ++ add $t3,$a,$a ++___ ++ } else { ++ $code.=<<___; ++ srlx @X[$j],32,$tx ! extract X[`2*$j+1`] ++ and $b,$t1,$t1 ! round $i ++ add $t2,$a,$a ++ xor $d,$t1,$t1 ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add $tx,$t2,$t2 ! X[`2*$j+1`]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ xor $b,$c,$t1 ++ add $t3,$a,$a ++___ ++ } ++} ++ ++sub R0_1 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (7,12,17,22)[$i%4]; ++ ++$code.=<<___; ++ srlx @X[0],32,$tx ! extract X[1] ++ and $b,$t1,$t1 ! round $i ++ add $t2,$a,$a ++ xor $d,$t1,$t1 ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add $tx,$t2,$t2 ! X[1]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ andn $b,$c,$t1 ++ add $t3,$a,$a ++___ ++} ++ ++sub R1 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (5,9,14,20)[$i%4]; ++ my $j = $i<31 ? (1+5*($i+1))%16 : (5+3*($i+1))%16; ++ my $xi = @X[$j/2]; ++ ++$code.=<<___ if ($j&1 && ($xi=$tx)); @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Tue Dec 8 15:03:17 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Tue, 8 Dec 2015 14:03:17 +0000 Subject: SF.net SVN: gar:[25441] csw/mgar/pkg/mysql5/branches Message-ID: <3pFNX729Mgzkp@mail.opencsw.org> Revision: 25441 http://sourceforge.net/p/gar/code/25441 Author: lblume Date: 2015-12-08 14:03:16 +0000 (Tue, 08 Dec 2015) Log Message: ----------- mysql5/branches/mysql-5.6.x: Bump to 5.6.28 Modified Paths: -------------- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile csw/mgar/pkg/mysql5/branches/mysql-5.5.x/checksums csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile csw/mgar/pkg/mysql5/branches/mysql-5.6.x/checksums Modified: csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile 2015-12-04 13:05:43 UTC (rev 25440) +++ csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile 2015-12-08 14:03:16 UTC (rev 25441) @@ -14,7 +14,7 @@ PROJ_NAME = mysql NAME = $(PROJ_NAME)5 BASE_VERSION = 5.5 -PATCHLEVEL = 46 +PATCHLEVEL = 47 ALTS_PRIO = 55 VERSION = $(BASE_VERSION).$(PATCHLEVEL) Modified: csw/mgar/pkg/mysql5/branches/mysql-5.5.x/checksums =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/checksums 2015-12-04 13:05:43 UTC (rev 25440) +++ csw/mgar/pkg/mysql5/branches/mysql-5.5.x/checksums 2015-12-08 14:03:16 UTC (rev 25441) @@ -1 +1 @@ -7f94c003b672d8edac1fb6adb391b090 mysql-5.5.46.tar.gz +cdeaa30303bca9c8361137b719ba7f3c mysql-5.5.47.tar.gz Modified: csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-04 13:05:43 UTC (rev 25440) +++ csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-08 14:03:16 UTC (rev 25441) @@ -20,7 +20,7 @@ PROJ_NAME = mysql NAME = $(PROJ_NAME)56 BASE_VERSION = 5.6 -PATCHLEVEL = 27 +PATCHLEVEL = 28 ALTS_PRIO = 56 VERSION = $(BASE_VERSION).$(PATCHLEVEL) Modified: csw/mgar/pkg/mysql5/branches/mysql-5.6.x/checksums =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/checksums 2015-12-04 13:05:43 UTC (rev 25440) +++ csw/mgar/pkg/mysql5/branches/mysql-5.6.x/checksums 2015-12-08 14:03:16 UTC (rev 25441) @@ -1 +1 @@ -7754df40bb5567b03b041ccb6b5ddffa mysql-5.6.27.tar.gz +4bc8fde6d04fb7104df1ba8a4025b156 mysql-5.6.28.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 8 16:01:55 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 8 Dec 2015 15:01:55 +0000 Subject: SF.net SVN: gar:[25442] csw/mgar/pkg/gcc5/trunk Message-ID: <3pFPqd1PB6znn@mail.opencsw.org> Revision: 25442 http://sourceforge.net/p/gar/code/25442 Author: dmichelsen Date: 2015-12-08 15:01:55 +0000 (Tue, 08 Dec 2015) Log Message: ----------- gcc5/trunk: Update to 5.3.0 Modified Paths: -------------- csw/mgar/pkg/gcc5/trunk/Makefile csw/mgar/pkg/gcc5/trunk/checksums Modified: csw/mgar/pkg/gcc5/trunk/Makefile =================================================================== --- csw/mgar/pkg/gcc5/trunk/Makefile 2015-12-08 14:03:16 UTC (rev 25441) +++ csw/mgar/pkg/gcc5/trunk/Makefile 2015-12-08 15:01:55 UTC (rev 25442) @@ -1,7 +1,7 @@ # $Id$ NAME = gcc -VERSION = 5.2.0 +VERSION = 5.3.0 GARTYPE = v2 BASE_VERSION = $(shell echo $(VERSION) | gsed -e 's/^\([0-9]\+\.[0-9]\+\)\(.*\)/\1/') PKG_VERSION_TOKEN = gcc5 Modified: csw/mgar/pkg/gcc5/trunk/checksums =================================================================== --- csw/mgar/pkg/gcc5/trunk/checksums 2015-12-08 14:03:16 UTC (rev 25441) +++ csw/mgar/pkg/gcc5/trunk/checksums 2015-12-08 15:01:55 UTC (rev 25442) @@ -1 +1 @@ -a51bcfeb3da7dd4c623e27207ed43467 gcc-5.2.0.tar.bz2 +c9616fd448f980259c31de613e575719 gcc-5.3.0.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From jake_goerzen at users.sourceforge.net Tue Dec 8 20:53:54 2015 From: jake_goerzen at users.sourceforge.net (jake_goerzen at users.sourceforge.net) Date: Tue, 8 Dec 2015 19:53:54 +0000 Subject: SF.net SVN: gar:[25443] csw/mgar/pkg/dovecot/trunk Message-ID: <3pFXJY1DWXzv3@mail.opencsw.org> Revision: 25443 http://sourceforge.net/p/gar/code/25443 Author: jake_goerzen Date: 2015-12-08 19:53:54 +0000 (Tue, 08 Dec 2015) Log Message: ----------- dovecot: update to 2.2.20 Modified Paths: -------------- csw/mgar/pkg/dovecot/trunk/Makefile csw/mgar/pkg/dovecot/trunk/checksums Modified: csw/mgar/pkg/dovecot/trunk/Makefile =================================================================== --- csw/mgar/pkg/dovecot/trunk/Makefile 2015-12-08 15:01:55 UTC (rev 25442) +++ csw/mgar/pkg/dovecot/trunk/Makefile 2015-12-08 19:53:54 UTC (rev 25443) @@ -2,7 +2,7 @@ # - SSL certs to /etc/opt/csw/ssl? # - /var/run/dovecot instead of /var/opt/csw/run? NAME = dovecot -VERSION = 2.2.19 +VERSION = 2.2.20 GARTYPE = v2 DESCRIPTION = Secure IMAP server @@ -40,8 +40,8 @@ RUNTIME_DEP_PKGS_CSWdovecot += CSWlibldap2-4-2 RUNTIME_DEP_PKGS_CSWdovecot += CSWliblzma5 RUNTIME_DEP_PKGS_CSWdovecot += CSWlibintl8 -RUNTIME_DEP_PKGS_CSWdovecot += CSWlibicui18n55 -RUNTIME_DEP_PKGS_CSWdovecot += CSWlibicuuc55 +RUNTIME_DEP_PKGS_CSWdovecot += CSWlibicui18n56 +RUNTIME_DEP_PKGS_CSWdovecot += CSWlibicuuc56 RUNTIME_DEP_PKGS_CSWdovecot += CSWlibgcc-s1 PKGFILES_CSWdovecot-dev = $(PKGFILES_DEVEL) Modified: csw/mgar/pkg/dovecot/trunk/checksums =================================================================== --- csw/mgar/pkg/dovecot/trunk/checksums 2015-12-08 15:01:55 UTC (rev 25442) +++ csw/mgar/pkg/dovecot/trunk/checksums 2015-12-08 19:53:54 UTC (rev 25443) @@ -1 +1 @@ -95591b6556413edc2f0b160fb469d04c dovecot-2.2.19.tar.gz +2dbeff4385eff699caa6f6b81b838d0f dovecot-2.2.20.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Wed Dec 9 09:26:20 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Wed, 9 Dec 2015 08:26:20 +0000 Subject: SF.net SVN: gar:[25444] csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Message-ID: <3pFs0l0xYSz151@mail.opencsw.org> Revision: 25444 http://sourceforge.net/p/gar/code/25444 Author: lblume Date: 2015-12-09 08:26:20 +0000 (Wed, 09 Dec 2015) Log Message: ----------- mysql5/branches/mysql-5.6.x: Remove unused dep Modified Paths: -------------- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Modified: csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-08 19:53:54 UTC (rev 25443) +++ csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-09 08:26:20 UTC (rev 25444) @@ -144,7 +144,6 @@ RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibz1 RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibstdc++6 CHECKPKG_OVERRIDES_CSW$(NAME) += file-with-bad-content CHECKPKG_OVERRIDES_CSW$(NAME) += no-direct-binding|/opt/csw/libexec/mysqld|is|not|directly|bound|to|soname|libmtmalloc.so.1 CHECKPKG_OVERRIDES_CSW$(NAME) += no-direct-binding|/opt/csw/libexec/sparcv9/mysqld|is|not|directly|bound|to|soname|libmtmalloc.so.1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Wed Dec 9 10:35:07 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Wed, 9 Dec 2015 09:35:07 +0000 Subject: SF.net SVN: gar:[25445] csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Message-ID: <3pFtX54V7Dz18F@mail.opencsw.org> Revision: 25445 http://sourceforge.net/p/gar/code/25445 Author: lblume Date: 2015-12-09 09:35:07 +0000 (Wed, 09 Dec 2015) Log Message: ----------- mysql5/branches/mysql-5.6.x: Remove unused dep Modified Paths: -------------- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Modified: csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-09 08:26:20 UTC (rev 25444) +++ csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-09 09:35:07 UTC (rev 25445) @@ -135,7 +135,6 @@ RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibz1 RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibstdc++6 CHECKPKG_OVERRIDES_CSW$(NAME)client += file-collision INCOMPATIBLE_PKGS_CSW$(NAME)client = CSWmysql5client This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Thu Dec 10 14:16:27 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Thu, 10 Dec 2015 13:16:27 +0000 Subject: SF.net SVN: gar:[25446] csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile Message-ID: <3pGbP95fKjz1JY@mail.opencsw.org> Revision: 25446 http://sourceforge.net/p/gar/code/25446 Author: lblume Date: 2015-12-10 13:16:26 +0000 (Thu, 10 Dec 2015) Log Message: ----------- mysql5/branches/mysql-5.5.x: Remove unused dep Modified Paths: -------------- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile Modified: csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile 2015-12-09 09:35:07 UTC (rev 25445) +++ csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile 2015-12-10 13:16:26 UTC (rev 25446) @@ -172,7 +172,6 @@ RUNTIME_DEP_PKGS_CSW$(NAME)client += $(RUNTIME_DEP_PKGS_CSW$(NAME)client_$(GAROSREL)) ### For GCC4 RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibstdc++6 CHECKPKG_OVERRIDES_CSW$(NAME)client += file-collision #CHECKPKG_OVERRIDES_CSW$(NAME)client += bad-rpath-entry @@ -195,7 +194,6 @@ RUNTIME_DEP_PKGS_CSW$(NAME) += $(RUNTIME_DEP_PKGS_CSW$(NAME)_$(GAROSREL)) ### For GCC4 RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibstdc++6 RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibwrap1 CHECKPKG_OVERRIDES_CSW$(NAME) += bad-rpath-entry This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 11 13:28:37 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 11 Dec 2015 12:28:37 +0000 Subject: SF.net SVN: gar:[25447] csw/mgar/pkg/stunnel/trunk Message-ID: <3pHBHM6ngCzWj@mail.opencsw.org> Revision: 25447 http://sourceforge.net/p/gar/code/25447 Author: dmichelsen Date: 2015-12-11 12:28:37 +0000 (Fri, 11 Dec 2015) Log Message: ----------- stunnel/trunk: Update to 5.28 Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile csw/mgar/pkg/stunnel/trunk/checksums Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-12-10 13:16:26 UTC (rev 25446) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-12-11 12:28:37 UTC (rev 25447) @@ -7,7 +7,7 @@ # Test on Solaris 8 / 9 for comparison # NAME = stunnel -VERSION = 5.27 +VERSION = 5.28 #BETA = b3 GARTYPE = v2 Modified: csw/mgar/pkg/stunnel/trunk/checksums =================================================================== --- csw/mgar/pkg/stunnel/trunk/checksums 2015-12-10 13:16:26 UTC (rev 25446) +++ csw/mgar/pkg/stunnel/trunk/checksums 2015-12-11 12:28:37 UTC (rev 25447) @@ -1 +1 @@ -cb275e28413e396664dbeb5e20fc699c stunnel-5.27.tar.gz +2c39ae0be771f91bf5b0205beafddca6 stunnel-5.28.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 11 14:09:33 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 11 Dec 2015 13:09:33 +0000 Subject: SF.net SVN: gar:[25448] csw/mgar/gar/v2/gar.conf.mk Message-ID: <3pHCBb2z2XzZV@mail.opencsw.org> Revision: 25448 http://sourceforge.net/p/gar/code/25448 Author: dmichelsen Date: 2015-12-11 13:09:33 +0000 (Fri, 11 Dec 2015) Log Message: ----------- mGAR v2: Raise GCC level to 5.x to Solaris 10 and 11 Modified Paths: -------------- csw/mgar/gar/v2/gar.conf.mk Modified: csw/mgar/gar/v2/gar.conf.mk =================================================================== --- csw/mgar/gar/v2/gar.conf.mk 2015-12-11 12:28:37 UTC (rev 25447) +++ csw/mgar/gar/v2/gar.conf.mk 2015-12-11 13:09:33 UTC (rev 25448) @@ -104,8 +104,12 @@ GARCOMPILER = $(GARCOMPILER-SUN-$(GAROSREL)) endif +GARCOMPILER-GNU-5.9 = GCC4 +GARCOMPILER-GNU-5.10 = GCC5 +GARCOMPILER-GNU-5.11 = GCC5 + ifeq ($(GARCOMPILER),GNU) - GARCOMPILER = GCC4 + GARCOMPILER = $(GARCOMPILER-GNU-$(GAROSREL)) endif ifeq (,$(filter $(GARCOMPILER),$(GARCOMPILERS))) @@ -983,10 +987,10 @@ PYTHON_MODULE_PACKAGE_PREFIX_3_3 = CSWpy33- PYTHON_MODULE_PACKAGE_PREFIX = $(PYTHON_MODULE_PACKAGE_PREFIX_$(PYTHON_VERSION)) -PYTHON_TEST_TARGET_2_6 = test -PYTHON_TEST_TARGET_2_7 = check -PYTHON_TEST_TARGET_3_3 = check -PYTHON_TEST_TARGET = $(PYTHON_TEST_TARGET_$(PYTHON_VERSION)) +PYTHON_TEST_TARGET_2_6 ?= test +PYTHON_TEST_TARGET_2_7 ?= check +PYTHON_TEST_TARGET_3_3 ?= check +PYTHON_TEST_TARGET ?= $(PYTHON_TEST_TARGET_$(PYTHON_VERSION)) # BUILDTREE comes from ~/.garrc PYTHONPATH = $(BUILDTREE)/.buildsys/v2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 11 14:29:52 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 11 Dec 2015 13:29:52 +0000 Subject: SF.net SVN: gar:[25449] csw/mgar/gar/v2/gar.conf.mk Message-ID: <3pHCf86wCSzdP@mail.opencsw.org> Revision: 25449 http://sourceforge.net/p/gar/code/25449 Author: dmichelsen Date: 2015-12-11 13:29:52 +0000 (Fri, 11 Dec 2015) Log Message: ----------- mGAR v2: Move from GCC 5.1 to 5.2 Modified Paths: -------------- csw/mgar/gar/v2/gar.conf.mk Modified: csw/mgar/gar/v2/gar.conf.mk =================================================================== --- csw/mgar/gar/v2/gar.conf.mk 2015-12-11 13:09:33 UTC (rev 25448) +++ csw/mgar/gar/v2/gar.conf.mk 2015-12-11 13:29:52 UTC (rev 25449) @@ -607,7 +607,7 @@ SOS12U4_CC_HOME ?= /opt/solarisstudio12.4 GCC4_VERSION ?= 4.9 - GCC5_VERSION ?= 5.1 + GCC5_VERSION ?= 5.2 GCC3_CC ?= $(GCC3_CC_HOME)/bin/gcc GCC4_CC ?= $(GCC4_CC_HOME)/bin/gcc-$(GCC4_VERSION) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Dec 11 18:26:39 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 11 Dec 2015 17:26:39 +0000 Subject: SF.net SVN: gar:[25450] csw/mgar/pkg/squid/trunk Message-ID: <3pHJvH54zPzrT@mail.opencsw.org> Revision: 25450 http://sourceforge.net/p/gar/code/25450 Author: dmichelsen Date: 2015-12-11 17:26:39 +0000 (Fri, 11 Dec 2015) Log Message: ----------- squid/trunk: Update to 4.0.3 Modified Paths: -------------- csw/mgar/pkg/squid/trunk/Makefile csw/mgar/pkg/squid/trunk/checksums csw/mgar/pkg/squid/trunk/files/cswsquid3 Modified: csw/mgar/pkg/squid/trunk/Makefile =================================================================== --- csw/mgar/pkg/squid/trunk/Makefile 2015-12-11 13:29:52 UTC (rev 25449) +++ csw/mgar/pkg/squid/trunk/Makefile 2015-12-11 17:26:39 UTC (rev 25450) @@ -2,7 +2,7 @@ # $Id$ # NAME = squid -VERSION = 3.5.10 +VERSION = 4.0.3 GARTYPE = v2 DESCRIPTION = High performance Web proxy cache @@ -14,8 +14,8 @@ V1 = $(shell echo $(VERSION) | cut -d. -f1) V12 = $(shell echo $(VERSION) | cut -d. -f1,2) -MASTER_SITES = http://www.squid-cache.org/Versions/v$(V1)/$(V12)/ -DISTFILES += $(DISTNAME).tar.bz2 +MASTER_SITES = http://www.squid-cache.org/Versions/v$(V1)/ +DISTFILES += $(DISTNAME).tar.xz # ssl_crtd fails to build on OpenSolaris/OpenIndiana/Solaris 11 # From http://bugs.squid-cache.org/show_bug.cgi?id=3664 @@ -42,7 +42,7 @@ RUNTIME_DEP_PKGS_CSWsquid += CSWlibintl8 RUNTIME_DEP_PKGS_CSWsquid += CSWlibkrb5-3 RUNTIME_DEP_PKGS_CSWsquid += CSWlibcom-err3 -RUNTIME_DEP_PKGS_CSWsquid += CSWlibnettle4 +RUNTIME_DEP_PKGS_CSWsquid += CSWlibnettle6 RUNTIME_DEP_PKGS_CSWsquid += CSWlibgnutls28 # Linker anomaly Modified: csw/mgar/pkg/squid/trunk/checksums =================================================================== --- csw/mgar/pkg/squid/trunk/checksums 2015-12-11 13:29:52 UTC (rev 25449) +++ csw/mgar/pkg/squid/trunk/checksums 2015-12-11 17:26:39 UTC (rev 25450) @@ -1 +1 @@ -79fc4117e8fc76572819e8497d7c0b29 squid-3.5.10.tar.bz2 +1b2c7e775d494993ea260ba959515162 squid-4.0.3.tar.xz Modified: csw/mgar/pkg/squid/trunk/files/cswsquid3 =================================================================== --- csw/mgar/pkg/squid/trunk/files/cswsquid3 2015-12-11 13:29:52 UTC (rev 25449) +++ csw/mgar/pkg/squid/trunk/files/cswsquid3 2015-12-11 17:26:39 UTC (rev 25450) @@ -21,7 +21,7 @@ exit 0 else echo 'starting squid server.' - ${SQUID_DAEMON} -D & + ${SQUID_DAEMON} & exit 0 fi else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Fri Dec 11 21:47:52 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Fri, 11 Dec 2015 20:47:52 +0000 Subject: SF.net SVN: gar:[25451] csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Message-ID: <3pHPMQ37S6zyT@mail.opencsw.org> Revision: 25451 http://sourceforge.net/p/gar/code/25451 Author: lblume Date: 2015-12-11 20:47:52 +0000 (Fri, 11 Dec 2015) Log Message: ----------- mysql5/branches/mysql-5.6.x: Switch to GCC5 Modified Paths: -------------- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Modified: csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-11 17:26:39 UTC (rev 25450) +++ csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-11 20:47:52 UTC (rev 25451) @@ -29,7 +29,7 @@ PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386 -GARCOMPILER = GCC4 +GARCOMPILER = GCC5 # Solaris 10 needs a special map file since we need libnsl Version 1.9.1 # and libc 1.22.5 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From jake_goerzen at users.sourceforge.net Sat Dec 12 06:22:22 2015 From: jake_goerzen at users.sourceforge.net (jake_goerzen at users.sourceforge.net) Date: Sat, 12 Dec 2015 05:22:22 +0000 Subject: SF.net SVN: gar:[25452] csw/mgar/pkg/tor/trunk Message-ID: <3pHcn42hyzz16Y@mail.opencsw.org> Revision: 25452 http://sourceforge.net/p/gar/code/25452 Author: jake_goerzen Date: 2015-12-12 05:22:21 +0000 (Sat, 12 Dec 2015) Log Message: ----------- tor: update to 0.2.7.6 Modified Paths: -------------- csw/mgar/pkg/tor/trunk/Makefile csw/mgar/pkg/tor/trunk/checksums Modified: csw/mgar/pkg/tor/trunk/Makefile =================================================================== --- csw/mgar/pkg/tor/trunk/Makefile 2015-12-11 20:47:52 UTC (rev 25451) +++ csw/mgar/pkg/tor/trunk/Makefile 2015-12-12 05:22:21 UTC (rev 25452) @@ -1,6 +1,6 @@ # $Id$ NAME = tor -VERSION = 0.2.7.5 +VERSION = 0.2.7.6 GARTYPE = v2 DESCRIPTION = Secure network traffic router Modified: csw/mgar/pkg/tor/trunk/checksums =================================================================== --- csw/mgar/pkg/tor/trunk/checksums 2015-12-11 20:47:52 UTC (rev 25451) +++ csw/mgar/pkg/tor/trunk/checksums 2015-12-12 05:22:21 UTC (rev 25452) @@ -1 +1 @@ -2fa650d387eb2ce08ad65ac1f182d3cc tor-0.2.7.5.tar.gz +cc19107b57136a68e8c563bf2d35b072 tor-0.2.7.6.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Sat Dec 12 14:29:44 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Sat, 12 Dec 2015 13:29:44 +0000 Subject: SF.net SVN: gar:[25453] csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Message-ID: <3pHqbQ52nbz1Dq@mail.opencsw.org> Revision: 25453 http://sourceforge.net/p/gar/code/25453 Author: lblume Date: 2015-12-12 13:29:43 +0000 (Sat, 12 Dec 2015) Log Message: ----------- mysql5/branches/mysql-5.6.x: Re-enable deps now that it's switched to GCC5 Modified Paths: -------------- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile Modified: csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-12 05:22:21 UTC (rev 25452) +++ csw/mgar/pkg/mysql5/branches/mysql-5.6.x/Makefile 2015-12-12 13:29:43 UTC (rev 25453) @@ -135,6 +135,7 @@ RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibz1 RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibstdc++6 CHECKPKG_OVERRIDES_CSW$(NAME)client += file-collision INCOMPATIBLE_PKGS_CSW$(NAME)client = CSWmysql5client @@ -143,6 +144,7 @@ RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibz1 RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibstdc++6 CHECKPKG_OVERRIDES_CSW$(NAME) += file-with-bad-content CHECKPKG_OVERRIDES_CSW$(NAME) += no-direct-binding|/opt/csw/libexec/mysqld|is|not|directly|bound|to|soname|libmtmalloc.so.1 CHECKPKG_OVERRIDES_CSW$(NAME) += no-direct-binding|/opt/csw/libexec/sparcv9/mysqld|is|not|directly|bound|to|soname|libmtmalloc.so.1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From jake_goerzen at users.sourceforge.net Sun Dec 13 05:02:39 2015 From: jake_goerzen at users.sourceforge.net (jake_goerzen at users.sourceforge.net) Date: Sun, 13 Dec 2015 04:02:39 +0000 Subject: SF.net SVN: gar:[25454] csw/mgar/pkg/dovecot/trunk Message-ID: <3pJByl6RQTz1Sw@mail.opencsw.org> Revision: 25454 http://sourceforge.net/p/gar/code/25454 Author: jake_goerzen Date: 2015-12-13 04:02:38 +0000 (Sun, 13 Dec 2015) Log Message: ----------- dovecot: update to 2.2.21 Modified Paths: -------------- csw/mgar/pkg/dovecot/trunk/Makefile csw/mgar/pkg/dovecot/trunk/checksums Modified: csw/mgar/pkg/dovecot/trunk/Makefile =================================================================== --- csw/mgar/pkg/dovecot/trunk/Makefile 2015-12-12 13:29:43 UTC (rev 25453) +++ csw/mgar/pkg/dovecot/trunk/Makefile 2015-12-13 04:02:38 UTC (rev 25454) @@ -2,7 +2,7 @@ # - SSL certs to /etc/opt/csw/ssl? # - /var/run/dovecot instead of /var/opt/csw/run? NAME = dovecot -VERSION = 2.2.20 +VERSION = 2.2.21 GARTYPE = v2 DESCRIPTION = Secure IMAP server Modified: csw/mgar/pkg/dovecot/trunk/checksums =================================================================== --- csw/mgar/pkg/dovecot/trunk/checksums 2015-12-12 13:29:43 UTC (rev 25453) +++ csw/mgar/pkg/dovecot/trunk/checksums 2015-12-13 04:02:38 UTC (rev 25454) @@ -1 +1 @@ -2dbeff4385eff699caa6f6b81b838d0f dovecot-2.2.20.tar.gz +28c39ab78a20f00701c26960d9190cf0 dovecot-2.2.21.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Mon Dec 14 09:37:29 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Mon, 14 Dec 2015 08:37:29 +0000 Subject: SF.net SVN: gar:[25455] csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile Message-ID: <3pJx1Q5nzZzLx@mail.opencsw.org> Revision: 25455 http://sourceforge.net/p/gar/code/25455 Author: lblume Date: 2015-12-14 08:37:29 +0000 (Mon, 14 Dec 2015) Log Message: ----------- mysql5/branches/mysql-5.5.x: Update deps Modified Paths: -------------- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile Modified: csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile =================================================================== --- csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile 2015-12-13 04:02:38 UTC (rev 25454) +++ csw/mgar/pkg/mysql5/branches/mysql-5.5.x/Makefile 2015-12-14 08:37:29 UTC (rev 25455) @@ -26,7 +26,7 @@ # Keep default old Studio 12.0 for old S9 only ifneq ($(shell /usr/bin/uname -r),5.9) - GARCOMPILER = GCC4 + GARCOMPILER = GCC5 # Try to get some more oomph out of a sparc # Benchmarks w/ 5.5.34 show no obvious benefit, so disabled for now #EXTRA_BUILD_ISAS_sparc = sparcv9+vis2 @@ -167,11 +167,10 @@ PKGFILES_CSW$(NAME)client += $(foreach bin_name,$(client_programs),$(bindir)/$(bin_name)) PKGFILES_CSW$(NAME)client += $(foreach bin_name,$(client_programs),$(sbindir)/$(bin_name)) RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibz1 -RUNTIME_DEP_PKGS_CSW$(NAME)client_5.9 += CSWlibssl1-0-0 -RUNTIME_DEP_PKGS_CSW$(NAME)client_5.10 += CSWlibssl1-0-0 -RUNTIME_DEP_PKGS_CSW$(NAME)client += $(RUNTIME_DEP_PKGS_CSW$(NAME)client_$(GAROSREL)) -### For GCC4 +RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibssl1-0-0 +### For GCC RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSW$(NAME)client += CSWlibstdc++6 CHECKPKG_OVERRIDES_CSW$(NAME)client += file-collision #CHECKPKG_OVERRIDES_CSW$(NAME)client += bad-rpath-entry @@ -189,11 +188,10 @@ SPKG_DESC_CSW$(NAME) = Multithreaded SQL database RUNTIME_DEP_PKGS_CSW$(NAME) += CSW$(NAME)client RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibz1 -RUNTIME_DEP_PKGS_CSW$(NAME)_5.9 += CSWlibssl1-0-0 -RUNTIME_DEP_PKGS_CSW$(NAME)_5.10 += CSWlibssl1-0-0 -RUNTIME_DEP_PKGS_CSW$(NAME) += $(RUNTIME_DEP_PKGS_CSW$(NAME)_$(GAROSREL)) -### For GCC4 +RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibssl1-0-0 +### For GCC RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSW$(NAME)+= CSWlibstdc++6 RUNTIME_DEP_PKGS_CSW$(NAME) += CSWlibwrap1 CHECKPKG_OVERRIDES_CSW$(NAME) += bad-rpath-entry This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 16 10:47:18 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 16 Dec 2015 09:47:18 +0000 Subject: SF.net SVN: gar:[25456] csw/mgar/pkg/squid/branches/squid-4.x Message-ID: <3pLBT25KzWzRn@mail.opencsw.org> Revision: 25456 http://sourceforge.net/p/gar/code/25456 Author: dmichelsen Date: 2015-12-16 09:47:17 +0000 (Wed, 16 Dec 2015) Log Message: ----------- squid/branches/squid-4.x: Update to 4.0.3 Modified Paths: -------------- csw/mgar/pkg/squid/branches/squid-4.x/Makefile csw/mgar/pkg/squid/branches/squid-4.x/checksums Modified: csw/mgar/pkg/squid/branches/squid-4.x/Makefile =================================================================== --- csw/mgar/pkg/squid/branches/squid-4.x/Makefile 2015-12-14 08:37:29 UTC (rev 25455) +++ csw/mgar/pkg/squid/branches/squid-4.x/Makefile 2015-12-16 09:47:17 UTC (rev 25456) @@ -2,7 +2,7 @@ # $Id$ # NAME = squid -VERSION = 4.0.1 +VERSION = 4.0.3 GARTYPE = v2 DESCRIPTION = High performance Web proxy cache Modified: csw/mgar/pkg/squid/branches/squid-4.x/checksums =================================================================== --- csw/mgar/pkg/squid/branches/squid-4.x/checksums 2015-12-14 08:37:29 UTC (rev 25455) +++ csw/mgar/pkg/squid/branches/squid-4.x/checksums 2015-12-16 09:47:17 UTC (rev 25456) @@ -1 +1 @@ -95c2e01bd5ff09185fe9c4afa0ce746a squid-4.0.1.tar.xz +1b2c7e775d494993ea260ba959515162 squid-4.0.3.tar.xz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 16 14:03:48 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 16 Dec 2015 13:03:48 +0000 Subject: SF.net SVN: gar:[25457] csw/mgar/pkg/apache24/trunk Message-ID: <3pLGqg5qznzZp@mail.opencsw.org> Revision: 25457 http://sourceforge.net/p/gar/code/25457 Author: dmichelsen Date: 2015-12-16 13:03:48 +0000 (Wed, 16 Dec 2015) Log Message: ----------- apache24/trunk: Update to 2.4.18 Modified Paths: -------------- csw/mgar/pkg/apache24/trunk/Makefile csw/mgar/pkg/apache24/trunk/checksums Modified: csw/mgar/pkg/apache24/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache24/trunk/Makefile 2015-12-16 09:47:17 UTC (rev 25456) +++ csw/mgar/pkg/apache24/trunk/Makefile 2015-12-16 13:03:48 UTC (rev 25457) @@ -1,7 +1,7 @@ # $Id: Makefile 18185 2012-06-01 02:30:46Z bdwalton $ NAME = httpd -VERSION = 2.4.17 +VERSION = 2.4.18 GARTYPE = v2 PACKAGING_PLATFORMS = solaris10-i386 solaris10-sparc Modified: csw/mgar/pkg/apache24/trunk/checksums =================================================================== --- csw/mgar/pkg/apache24/trunk/checksums 2015-12-16 09:47:17 UTC (rev 25456) +++ csw/mgar/pkg/apache24/trunk/checksums 2015-12-16 13:03:48 UTC (rev 25457) @@ -1 +1 @@ -5984049a2311de7173ba545643c450bb httpd-2.4.17.tar.gz +2f90ce3426541817e0dfd01cae086b60 httpd-2.4.18.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Wed Dec 16 16:09:35 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Wed, 16 Dec 2015 15:09:35 +0000 Subject: SF.net SVN: gar:[25458] csw/mgar/pkg Message-ID: <3pLKcq14skzsK@mail.opencsw.org> Revision: 25458 http://sourceforge.net/p/gar/code/25458 Author: janholzh Date: 2015-12-16 15:09:35 +0000 (Wed, 16 Dec 2015) Log Message: ----------- nghttp2/trunk: initial commit Added Paths: ----------- csw/mgar/pkg/nghttp2/ csw/mgar/pkg/nghttp2/Makefile csw/mgar/pkg/nghttp2/branches/ csw/mgar/pkg/nghttp2/tags/ csw/mgar/pkg/nghttp2/trunk/ csw/mgar/pkg/nghttp2/trunk/Makefile csw/mgar/pkg/nghttp2/trunk/checksums csw/mgar/pkg/nghttp2/trunk/files/ Added: csw/mgar/pkg/nghttp2/Makefile =================================================================== --- csw/mgar/pkg/nghttp2/Makefile (rev 0) +++ csw/mgar/pkg/nghttp2/Makefile 2015-12-16 15:09:35 UTC (rev 25458) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/nghttp2/trunk =================================================================== --- csw/mgar/pkg/nghttp2/trunk 2015-12-16 13:03:48 UTC (rev 25457) +++ csw/mgar/pkg/nghttp2/trunk 2015-12-16 15:09:35 UTC (rev 25458) Property changes on: csw/mgar/pkg/nghttp2/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/nghttp2/trunk/Makefile =================================================================== --- csw/mgar/pkg/nghttp2/trunk/Makefile (rev 0) +++ csw/mgar/pkg/nghttp2/trunk/Makefile 2015-12-16 15:09:35 UTC (rev 25458) @@ -0,0 +1,37 @@ +# $Id$ +# TODO (release-critical prefixed with !, non release-critical with *) +# +NAME = nghttp2 +VERSION = 1.5.0 +GARTYPE = v2 + +DESCRIPTION =The nghttp2 is an implementation of HTTP/2 +define BLURB + The nghttp2 is an implementation of HTTP/2 and its header compression algorithm HPACK in C +endef + +MASTER_SITES = https://github.com/tatsuhiro-t/nghttp2/releases/download/v1.5.0/ +DISTFILES = $(DISTNAME).tar.xz + +GARCOMPILER = GCC5 +BUILD64 = 1 + +PACKAGES += CSWlibnghttp2-14 +CATALOGNAME_CSWlibnghttp2-14 = libnghttp2_14 +SPKG_DESC_CSWlibnghttp2-14 += $(DESCRIPTION), libnghttp2.so.14 +PKGFILES_CSWlibnghttp2-14 += $(call baseisadirs,$(libdir),libnghttp2\.so\.14\.3\.0) +PKGFILES_CSWlibnghttp2-14 += $(call baseisadirs,$(libdir),libnghttp2\.so\.14(\.\d+)*) +RUNTIME_DEP_PKGS_CSWlibnghttp2-14 += CSWlibgcc-s1 + +PACKAGES += CSWlibnghttp2-dev +CATALOGNAME_CSWlibnghttp2-dev = libnghttp2_dev +SPKG_DESC_CSWlibnghttp2-dev += $(DESCRIPTION), development files +PKGFILES_CSWlibnghttp2-dev += $(PKGFILES_DEVEL) +RUNTIME_DEP_PKGS_CSWlibnghttp2-dev += CSWlibnghttp2-14 + + +# Apps don't build. Build lib only +CONFIGURE_ARGS = $(DIRPATHS) --disable-python-bindings --disable-app --disable-examples --disable-static + +include gar/category.mk + Property changes on: csw/mgar/pkg/nghttp2/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/nghttp2/trunk/checksums =================================================================== --- csw/mgar/pkg/nghttp2/trunk/checksums (rev 0) +++ csw/mgar/pkg/nghttp2/trunk/checksums 2015-12-16 15:09:35 UTC (rev 25458) @@ -0,0 +1 @@ +eac2f94ca8f233a861c6a7f73c61a29d nghttp2-1.5.0.tar.xz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 16 16:26:01 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 16 Dec 2015 15:26:01 +0000 Subject: SF.net SVN: gar:[25459] csw/mgar/pkg/squid/trunk Message-ID: <3pLKzr0BGXzw6@mail.opencsw.org> Revision: 25459 http://sourceforge.net/p/gar/code/25459 Author: dmichelsen Date: 2015-12-16 15:26:01 +0000 (Wed, 16 Dec 2015) Log Message: ----------- squid/trunk: Update to 3.5.12 Modified Paths: -------------- csw/mgar/pkg/squid/trunk/Makefile csw/mgar/pkg/squid/trunk/checksums csw/mgar/pkg/squid/trunk/files/cswsquid3 Modified: csw/mgar/pkg/squid/trunk/Makefile =================================================================== --- csw/mgar/pkg/squid/trunk/Makefile 2015-12-16 15:09:35 UTC (rev 25458) +++ csw/mgar/pkg/squid/trunk/Makefile 2015-12-16 15:26:01 UTC (rev 25459) @@ -2,7 +2,7 @@ # $Id$ # NAME = squid -VERSION = 4.0.3 +VERSION = 3.5.12 GARTYPE = v2 DESCRIPTION = High performance Web proxy cache @@ -14,8 +14,8 @@ V1 = $(shell echo $(VERSION) | cut -d. -f1) V12 = $(shell echo $(VERSION) | cut -d. -f1,2) -MASTER_SITES = http://www.squid-cache.org/Versions/v$(V1)/ -DISTFILES += $(DISTNAME).tar.xz +MASTER_SITES = http://www.squid-cache.org/Versions/v$(V1)/$(V12)/ +DISTFILES += $(DISTNAME).tar.bz2 # ssl_crtd fails to build on OpenSolaris/OpenIndiana/Solaris 11 # From http://bugs.squid-cache.org/show_bug.cgi?id=3664 Modified: csw/mgar/pkg/squid/trunk/checksums =================================================================== --- csw/mgar/pkg/squid/trunk/checksums 2015-12-16 15:09:35 UTC (rev 25458) +++ csw/mgar/pkg/squid/trunk/checksums 2015-12-16 15:26:01 UTC (rev 25459) @@ -1 +1 @@ -1b2c7e775d494993ea260ba959515162 squid-4.0.3.tar.xz +2065f4394957a808137ca63d9a3372a6 squid-3.5.12.tar.bz2 Modified: csw/mgar/pkg/squid/trunk/files/cswsquid3 =================================================================== --- csw/mgar/pkg/squid/trunk/files/cswsquid3 2015-12-16 15:09:35 UTC (rev 25458) +++ csw/mgar/pkg/squid/trunk/files/cswsquid3 2015-12-16 15:26:01 UTC (rev 25459) @@ -21,7 +21,7 @@ exit 0 else echo 'starting squid server.' - ${SQUID_DAEMON} & + ${SQUID_DAEMON} -D & exit 0 fi else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Wed Dec 16 16:28:04 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Wed, 16 Dec 2015 15:28:04 +0000 Subject: SF.net SVN: gar:[25460] csw/mgar/pkg/gnustep-base/trunk/Makefile Message-ID: <3pLL266Qb3zyS@mail.opencsw.org> Revision: 25460 http://sourceforge.net/p/gar/code/25460 Author: rmottola Date: 2015-12-16 15:28:03 +0000 (Wed, 16 Dec 2015) Log Message: ----------- gnustep-base/trunk: raise minimum processor version since gcc doesn't provide atomic primitives otherwise Modified Paths: -------------- csw/mgar/pkg/gnustep-base/trunk/Makefile Modified: csw/mgar/pkg/gnustep-base/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnustep-base/trunk/Makefile 2015-12-16 15:26:01 UTC (rev 25459) +++ csw/mgar/pkg/gnustep-base/trunk/Makefile 2015-12-16 15:28:03 UTC (rev 25460) @@ -71,6 +71,8 @@ PACKAGING_PLATFORMS += solaris10-sparc PACKAGING_PLATFORMS += solaris10-i386 +ISA_DEFAULT_i386-5.9 = pentium_pro + #PATCHFILES += 0001-configure-tweak-align.patch #PATCHFILES += 0002-timezone.patch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Dec 16 16:29:10 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 16 Dec 2015 15:29:10 +0000 Subject: SF.net SVN: gar:[25461] csw/mgar/pkg/sysstat/trunk Message-ID: <3pLL3M5hcGz156@mail.opencsw.org> Revision: 25461 http://sourceforge.net/p/gar/code/25461 Author: dmichelsen Date: 2015-12-16 15:29:10 +0000 (Wed, 16 Dec 2015) Log Message: ----------- sysstat/trunk: Add explicit support for Solaris 11 Modified Paths: -------------- csw/mgar/pkg/sysstat/trunk/Makefile csw/mgar/pkg/sysstat/trunk/checksums Modified: csw/mgar/pkg/sysstat/trunk/Makefile =================================================================== --- csw/mgar/pkg/sysstat/trunk/Makefile 2015-12-16 15:28:03 UTC (rev 25460) +++ csw/mgar/pkg/sysstat/trunk/Makefile 2015-12-16 15:29:10 UTC (rev 25461) @@ -1,5 +1,5 @@ NAME = sysstat -VERSION = 20111025 +VERSION = 20151012 GARTYPE = v2 DESCRIPTION = Key system statistics at a glance @@ -25,10 +25,11 @@ LICENSE = LICENSE -#Build for all Platformas since old build seems broken on newer Solaris 10 Versions +# Build for all Platformas since old build seems broken on newer Solaris 10 Versions +PACKAGING_PLATFORMS += solaris9-sparc solaris9-i386 +PACKAGING_PLATFORMS += solaris10-sparc solaris10-i386 +PACKAGING_PLATFORMS += solaris11-sparc solaris11-i386 -PACKAGING_PLATFORMS = solaris9-sparc solaris9-i386 solaris10-sparc solaris10-i386 - PATCHFILES = patch-onlyisaexec-sysstatd.diff CONFIGURE_SCRIPTS = custom Modified: csw/mgar/pkg/sysstat/trunk/checksums =================================================================== --- csw/mgar/pkg/sysstat/trunk/checksums 2015-12-16 15:28:03 UTC (rev 25460) +++ csw/mgar/pkg/sysstat/trunk/checksums 2015-12-16 15:29:10 UTC (rev 25461) @@ -1 +1 @@ -842573fc95aa9e8d8b57a6785e0878da sysstat-20111025.tgz +b6a79518878a68912cc3c3672d5197bc sysstat-20151012.tgz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Dec 16 16:46:10 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 16 Dec 2015 15:46:10 +0000 Subject: SF.net SVN: gar:[25462] csw/mgar/pkg/nrpe/trunk/Makefile Message-ID: <3pLLR60Hsgz17t@mail.opencsw.org> Revision: 25462 http://sourceforge.net/p/gar/code/25462 Author: cgrzemba Date: 2015-12-16 15:46:10 +0000 (Wed, 16 Dec 2015) Log Message: ----------- nrpe/trunk: update recipe while ips packaging tests Modified Paths: -------------- csw/mgar/pkg/nrpe/trunk/Makefile Modified: csw/mgar/pkg/nrpe/trunk/Makefile =================================================================== --- csw/mgar/pkg/nrpe/trunk/Makefile 2015-12-16 15:29:10 UTC (rev 25461) +++ csw/mgar/pkg/nrpe/trunk/Makefile 2015-12-16 15:46:10 UTC (rev 25462) @@ -2,8 +2,6 @@ VERSION = 2.15 GARTYPE = v2 -SPKG_DESC_CSWnrpe = Nagios remote plugin executor -SPKG_DESC_CSWnrpe-plugin = Nagios plugin that connects to nrpe demon define BLURB NRPE allows you to remotely execute Nagios plugins on other Linux/Unix machines. This allows you to monitor remote machine metrics (disk usage, CPU load, etc.). NRPE can also communicate with some of the Windows agent addons, so you can execute scripts and check metrics on remote Windows machines as well. @@ -26,79 +24,83 @@ PATCHFILES_isa-sparcv8plus-size-8k = 0002-changing-packetbuffer-length-to-8k.patch PATCHFILES_isa-pentium_pro-size-8k = 0002-changing-packetbuffer-length-to-8k.patch +# needs autoconf! +# PATCHFILES += 0003-remove-chown-on-install.patch -PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386 +# +# replace /usr/local +# +REINPLACE_USRLOCAL += .*/nrpe-2.15/SECURITY +REINPLACE_USRLOCAL += .*/nrpe-2.15/README +REINPLACE_USRLOCAL += sample-config/nrpe.cfg.in + +PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386 solaris11-i386 + +# GARCOMPILER = GCC5 + # # # +PRESERVECONF += $(sysconfdir)/nrpe.cfg +USERGROUP += $(sysconfdir)/pkg/CSWnrpe/cswusergroup +INITSMF += $(sysconfdir)/init.d/cswnrpe -PACKAGES = CSWnrpe CSWnrpe-plugin -CATALOGNAME_CSWnrpe = nrpe -CATALOGNAME_CSWnrpe-plugin = nrpe_plugin +# OBSOLETED_BY_CSWnrpe-plugin = CSWnrpeplugin +# SPKG_CATALOG_NAME_CSWnrpeplugin = nrpe_plugin_stub -OBSOLETED_BY_CSWnrpe-plugin = CSWnrpeplugin -SPKG_CATALOG_NAME_CSWnrpeplugin = nrpe_plugin_stub - # # files for CSWnrpe # -PKGFILES_CSWnrpe = /opt/csw/bin/nrpe_1k -PKGFILES_CSWnrpe += /opt/csw/bin/nrpe_8k -PKGFILES_CSWnrpe += /opt/csw/bin/nrpe -PKGFILES_CSWnrpe += /etc/opt/csw/nrpe.cfg.CSW -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/NRPE.pdf -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/LEGAL -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/license -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/README -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/README_8k -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/README.SSL -PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/SECURITY -PKGFILES_CSWnrpe += /opt/csw/nagios -PKGFILES_CSWnrpe += /etc/opt/csw/init.d/cswnrpe -PKGFILES_CSWnrpe += /etc/opt/csw/pkg/CSWnrpe/cswusergroup -PKGFILES_CSWnrpe += /opt/csw/etc/templates/CSWnrpe$(CFGDIR) -PKGFILES_CSWnrpe += /opt/csw/etc/templates/CSWnrpe$(CFGDIR)/nrpe.cfg +PACKAGES += CSWnrpe +SPKG_DESC_CSWnrpe = Nagios remote plugin executor +# PKGFILES_CSWnrpe += /opt/csw/bin/nrpe_1k +# PKGFILES_CSWnrpe += /opt/csw/bin/nrpe_8k +# PKGFILES_CSWnrpe += /opt/csw/bin/nrpe +# PKGFILES_CSWnrpe += /etc/opt/csw/nrpe.cfg +# PKGFILES_CSWnrpe += /etc/opt/csw/init.d/cswnrpe +# PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe +# PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/NRPE.pdf +# PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/LEGAL +# PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/license +# PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/README +# PKGFILES_CSWnrpe_SHARED += /opt/csw/share/doc/nrpe/README_8k +# PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/README.SSL +# PKGFILES_CSWnrpe += /opt/csw/share/doc/nrpe/SECURITY +# PKGFILES_CSWnrpe += /opt/csw/nagios +RUNTIME_DEP_PKGS_CSWnrpe += CSWlibwrap1 +RUNTIME_DEP_PKGS_CSWnrpe += CSWlibssl1-0-0 +# README_8k should be in every package +CHECKPKG_OVERRIDES_CSWnrpe += file-collision|/opt/csw/share/doc/nrpe/README_8k|CSWnrpe|CSWnrpe-plugin +CHECKPKG_OVERRIDES_CSWnrpe-plugin += file-collision|/opt/csw/share/doc/nrpe/README_8k|CSWnrpe|CSWnrpe-plugin + + # # files for CSWnrpe-plugin # -PKGFILES_CSWnrpe-plugin = /opt/csw/libexec/nagios-plugins +PACKAGES += CSWnrpe-plugin +SPKG_DESC_CSWnrpe-plugin = Nagios plugin that connects to nrpe demon +PKGFILES_CSWnrpe-plugin += /opt/csw/libexec/nagios-plugins PKGFILES_CSWnrpe-plugin += /opt/csw/libexec/nagios-plugins/check_nrpe PKGFILES_CSWnrpe-plugin += /opt/csw/libexec/nagios-plugins/check_nrpe_1k PKGFILES_CSWnrpe-plugin += /opt/csw/libexec/nagios-plugins/check_nrpe_8k PKGFILES_CSWnrpe-plugin += /opt/csw/share/doc/nrpe -PKGFILES_CSWnrpe-plugin += /opt/csw/share/doc/nrpe/README_8k +PKGFILES_CSWnrpe-plugin_SHARED += /opt/csw/share/doc/nrpe/README_8k PKGFILES_CSWnrpe-plugin += /opt/csw/share/doc/nrpe_plugin PKGFILES_CSWnrpe-plugin += /opt/csw/share/doc/nrpe_plugin/license +RUNTIME_DEP_PKGS_CSWnrpe-plugin += CSWlibssl1-0-0 # -# replace /usr/local -# - -REINPLACE_USRLOCAL += .*/nrpe-2.15/SECURITY -REINPLACE_USRLOCAL += .*/nrpe-2.15/README -REINPLACE_USRLOCAL += sample-config/nrpe.cfg.in - -# # migrate configuration # -MIGRATE_FILES_CSWnrpe = nrpe.cfg -MIGRATE_SOURCE_DIR = /opt/csw/etc -MIGRATE_DEST_DIR = /etc/opt/csw +# MIGRATE_FILES_CSWnrpe = nrpe.cfg +# MIGRATE_SOURCE_DIR = /opt/csw/etc +# MIGRATE_DEST_DIR = /etc/opt/csw -# -# -# - -RUNTIME_DEP_PKGS_CSWnrpe-plugin += CSWlibssl1-0-0 -RUNTIME_DEP_PKGS_CSWnrpe += CSWlibwrap1 -RUNTIME_DEP_PKGS_CSWnrpe += CSWlibssl1-0-0 - LICENSE = LEGAL NOISALIST = 1 @@ -120,6 +122,7 @@ datadir = $(prefix)/share TEST_TARGET = all + INSTALL_SCRIPTS = custom MERGE_SCRIPTS_isa-sparcv8plus-size-1k = copy-all @@ -131,20 +134,12 @@ # # # - -INITSMF = /etc/opt/csw/init.d/cswnrpe -USERGROUP = /etc/opt/csw/pkg/CSWnrpe/cswusergroup #POSTMSG = /opt/csw/share/doc/nrpe/README.CSW # # overrides # -# README_8k should be in every package - -CHECKPKG_OVERRIDES_CSWnrpe += file-collision|/opt/csw/share/doc/nrpe/README_8k|CSWnrpe|CSWnrpe-plugin -CHECKPKG_OVERRIDES_CSWnrpe-plugin += file-collision|/opt/csw/share/doc/nrpe/README_8k|CSWnrpe|CSWnrpe-plugin - # # # @@ -155,13 +150,15 @@ CFGDIR=$(sysconfdir) LIBEXECDIR=$(libexecdir) BINDIR=$(bindir) -CSWnrpe_TEMPLATEDIR = /opt/csw/etc/templates/CSWnrpe$(CFGDIR) +# pre-configure: +# cd $(WORKSRC) && autoconf +# @$(MAKECOOKIE) + install-custom: @ginstall -m 775 -d $(DESTDIR)$(DOCDIR) @ginstall -m 755 -d $(DESTDIR)$(LIBEXECDIR) @ginstall -m 755 -d $(DESTDIR)$(BINDIR) - @ginstall -m 755 -d $(DESTDIR)/nagios @ginstall -m 755 $(WORKSRC)/src/check_nrpe $(DESTDIR)$(LIBEXECDIR)/check_nrpe_1k @ln -s $(LIBEXECDIR)/check_nrpe_1k $(DESTDIR)$(LIBEXECDIR)/check_nrpe @ginstall -m 755 $(WORKSRC)/src/nrpe $(DESTDIR)$(BINDIR)/nrpe_1k @@ -172,21 +169,13 @@ @ginstall -m 644 $(WORKSRC)/README $(DESTDIR)$(DOCDIR) @ginstall -m 644 $(WORKSRC)/README.SSL $(DESTDIR)$(DOCDIR) @ginstall -m 644 $(WORKSRC)/SECURITY $(DESTDIR)$(DOCDIR) + # @ginstall -m 755 -d $(DESTDIR)/etc/opt/csw/pkg/CSWnrpe + # @ginstall -m 644 $(FILEDIR)/cswusergroup $(DESTDIR)/etc/opt/csw/pkg/CSWnrpe/cswusergroup @# - @# configuration file for CSWnrpe -> cswcptemplates - @# - @ginstall -m 775 -d $(DESTDIR)$(CSWnrpe_TEMPLATEDIR) - @ginstall -m 644 $(WORKSRC)/sample-config/nrpe.cfg $(DESTDIR)$(CSWnrpe_TEMPLATEDIR)/nrpe.cfg - @# - @# create user and group -> cswusergroup - @# - @ginstall -m 755 -d $(DESTDIR)/etc/opt/csw/pkg/CSWnrpe - @ginstall -m 644 $(FILEDIR)/cswusergroup $(DESTDIR)/etc/opt/csw/pkg/CSWnrpe/cswusergroup - @# @# Start / Stop script - @# @ginstall -d $(DESTDIR)/etc/$(BUILD_PREFIX)/init.d @ginstall -m 755 $(FILEDIR)/cswnrpe $(DESTDIR)/etc/$(BUILD_PREFIX)/init.d/cswnrpe + cd $(WORKSRC) && gmake install-daemon-config DESTDIR=$(DESTDIR) @$(MAKECOOKIE) merge-copy-nrpe-only: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Wed Dec 16 17:54:11 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Wed, 16 Dec 2015 16:54:11 +0000 Subject: SF.net SVN: gar:[25463] csw/mgar/pkg/gnustep-make/trunk/Makefile Message-ID: <3pLMxV5V05z1PC@mail.opencsw.org> Revision: 25463 http://sourceforge.net/p/gar/code/25463 Author: rmottola Date: 2015-12-16 16:54:11 +0000 (Wed, 16 Dec 2015) Log Message: ----------- gnustep-make/trunk: raise ISA Modified Paths: -------------- csw/mgar/pkg/gnustep-make/trunk/Makefile Modified: csw/mgar/pkg/gnustep-make/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnustep-make/trunk/Makefile 2015-12-16 15:46:10 UTC (rev 25462) +++ csw/mgar/pkg/gnustep-make/trunk/Makefile 2015-12-16 16:54:11 UTC (rev 25463) @@ -21,6 +21,9 @@ PACKAGING_PLATFORMS += solaris9-sparc solaris9-i386 PACKAGING_PLATFORMS += solaris10-sparc solaris10-i386 +#in gnustep-base we need atomic ops, available for gcc only with 486 or later +ISA_DEFAULT_i386-5.9 = pentium + #we absolutely need GCC for Objective-C support. The only alternative in the future would be clang GARCOMPILER = GNU This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Wed Dec 16 23:34:26 2015 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Wed, 16 Dec 2015 22:34:26 +0000 Subject: SF.net SVN: gar:[25464] csw/mgar/pkg/bind/trunk Message-ID: <3pLWV61C91z4s@mail.opencsw.org> Revision: 25464 http://sourceforge.net/p/gar/code/25464 Author: bonivart Date: 2015-12-16 22:34:26 +0000 (Wed, 16 Dec 2015) Log Message: ----------- bind/trunk: update to 9.10.3-P2 Modified Paths: -------------- csw/mgar/pkg/bind/trunk/Makefile csw/mgar/pkg/bind/trunk/checksums Modified: csw/mgar/pkg/bind/trunk/Makefile =================================================================== --- csw/mgar/pkg/bind/trunk/Makefile 2015-12-16 16:54:11 UTC (rev 25463) +++ csw/mgar/pkg/bind/trunk/Makefile 2015-12-16 22:34:26 UTC (rev 25464) @@ -3,29 +3,27 @@ # dlz extensions problematic, remove source: /bin/tests/system, rm -rf dlzexternal NAME = bind -#VERSION = 9.9.7 VERSION = 9.10.3 GARTYPE = v2 # Enable these for Px-releases -#RELEASE = P2 -#RELEASE = P4 -#DISTVERSION = $(VERSION)-$(RELEASE) -#SPKG_VERSION = $(VERSION)$(RELEASE) -#DISTNAME = $(NAME)-$(VERSION)-$(RELEASE) -#WORKSRC = $(WORKDIR)/$(DISTNAME) +RELEASE = P2 +DISTVERSION = $(VERSION)-$(RELEASE) +SPKG_VERSION = $(VERSION)$(RELEASE) +DISTNAME = $(NAME)-$(VERSION)-$(RELEASE) +WORKSRC = $(WORKDIR)/$(DISTNAME) DESCRIPTION = ISC BIND DNS reference implementation define BLURB endef # Enable these for Px-releases -#MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)-$(RELEASE)/ -#DISTFILES = $(DISTNAME).tar.gz +MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)-$(RELEASE)/ +DISTFILES = $(DISTNAME).tar.gz # Disable these for Px-releases -MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)/ -DISTFILES = $(NAME)-$(VERSION).tar.gz +#MASTER_SITES = http://ftp.isc.org/isc/bind9/$(VERSION)/ +#DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += CSWbindchroot.postinstall @@ -124,12 +122,12 @@ # Will not split out all these libs CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/libbind9.so.140.0.10|soname=libbind9.so.140|pkgname=CSWlibbind|expected=CSWlibbind9-140 -CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/libdns.so.161.1.0|soname=libdns.so.161|pkgname=CSWlibbind|expected=CSWlibdns161 CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/libirs.so.141.0.4|soname=libirs.so.141|pkgname=CSWlibbind|expected=CSWlibirs141 CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/libisc.so.160.0.0|soname=libisc.so.160|pkgname=CSWlibbind|expected=CSWlibisc160 CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/libisccc.so.140.0.3|soname=libisccc.so.140|pkgname=CSWlibbind|expected=CSWlibisccc140 CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/libisccfg.so.140.3.0|soname=libisccfg.so.140|pkgname=CSWlibbind|expected=CSWlibisccfg140 CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/liblwres.so.141.0.3|soname=liblwres.so.141|pkgname=CSWlibbind|expected=CSWliblwres141 +CHECKPKG_OVERRIDES_CSWlibbind += shared-lib-pkgname-mismatch|file=opt/csw/lib/libdns.so.162.1.1|soname=libdns.so.162|pkgname=CSWlibbind|expected=CSWlibdns162 # Some new checks, have no idea about their relevance CHECKPKG_OVERRIDES_CSWlibbind += no-direct-binding Modified: csw/mgar/pkg/bind/trunk/checksums =================================================================== --- csw/mgar/pkg/bind/trunk/checksums 2015-12-16 16:54:11 UTC (rev 25463) +++ csw/mgar/pkg/bind/trunk/checksums 2015-12-16 22:34:26 UTC (rev 25464) @@ -1 +1 @@ -d8cbf04a62a139a841d4bf878087a555 bind-9.10.3.tar.gz +672dd3c2796b12ac8440f55bcaecfa82 bind-9.10.3-P2.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Thu Dec 17 16:21:41 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Thu, 17 Dec 2015 15:21:41 +0000 Subject: SF.net SVN: gar:[25465] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3pLxrR0R3tzWy@mail.opencsw.org> Revision: 25465 http://sourceforge.net/p/gar/code/25465 Author: claudio_sf Date: 2015-12-17 15:21:40 +0000 (Thu, 17 Dec 2015) Log Message: ----------- Bum version Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-12-16 22:34:26 UTC (rev 25464) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 15:21:40 UTC (rev 25465) @@ -1,5 +1,5 @@ NAME = perl -VERSION = 5.22.0 +VERSION = 5.22.1 VERSION_MAJOR = $(shell echo $(VERSION) | cut -f1-2 -d.) GARTYPE = v2 DESCRIPTION = A high-level, general-purpose programming language @@ -25,7 +25,8 @@ LICENSE = Copying # GCC build (Sun Studio build has been fixed) -GARCOMPILER = GCC4 +#GARCOMPILER = GCC4 +GARCOMPILER = GCC5 MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 MAKE_OPT = $(MAKE_OPT_$(shell hostname)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Thu Dec 17 16:28:27 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Thu, 17 Dec 2015 15:28:27 +0000 Subject: SF.net SVN: gar:[25466] csw/mgar/pkg/perl/trunk Message-ID: <3pLy054QqNzZK@mail.opencsw.org> Revision: 25466 http://sourceforge.net/p/gar/code/25466 Author: claudio_sf Date: 2015-12-17 15:28:27 +0000 (Thu, 17 Dec 2015) Log Message: ----------- perl/trunk: put gcc5 in comment Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile csw/mgar/pkg/perl/trunk/checksums Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 15:21:40 UTC (rev 25465) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 15:28:27 UTC (rev 25466) @@ -26,7 +26,7 @@ # GCC build (Sun Studio build has been fixed) #GARCOMPILER = GCC4 -GARCOMPILER = GCC5 +#GARCOMPILER = GCC5 MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 MAKE_OPT = $(MAKE_OPT_$(shell hostname)) Modified: csw/mgar/pkg/perl/trunk/checksums =================================================================== --- csw/mgar/pkg/perl/trunk/checksums 2015-12-17 15:21:40 UTC (rev 25465) +++ csw/mgar/pkg/perl/trunk/checksums 2015-12-17 15:28:27 UTC (rev 25466) @@ -1 +1 @@ -f67b152160431b3180fb766bdc2d02e2 perl-5.22.0.tar.bz2 +67242b9bd642b458bec884ed2a040910 perl-5.22.1.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Thu Dec 17 16:29:48 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Thu, 17 Dec 2015 15:29:48 +0000 Subject: SF.net SVN: gar:[25467] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3pLy1j3Ln6zcn@mail.opencsw.org> Revision: 25467 http://sourceforge.net/p/gar/code/25467 Author: claudio_sf Date: 2015-12-17 15:29:48 +0000 (Thu, 17 Dec 2015) Log Message: ----------- perl/trunk: put gcc5 in comment Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 15:28:27 UTC (rev 25466) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 15:29:48 UTC (rev 25467) @@ -25,7 +25,7 @@ LICENSE = Copying # GCC build (Sun Studio build has been fixed) -#GARCOMPILER = GCC4 +GARCOMPILER = GCC4 #GARCOMPILER = GCC5 MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Thu Dec 17 16:33:04 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Thu, 17 Dec 2015 15:33:04 +0000 Subject: SF.net SVN: gar:[25468] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3pLy5P65m6zg8@mail.opencsw.org> Revision: 25468 http://sourceforge.net/p/gar/code/25468 Author: claudio_sf Date: 2015-12-17 15:33:04 +0000 (Thu, 17 Dec 2015) Log Message: ----------- perl/trunk: compiler -> GNU Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 15:29:48 UTC (rev 25467) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 15:33:04 UTC (rev 25468) @@ -25,8 +25,7 @@ LICENSE = Copying # GCC build (Sun Studio build has been fixed) -GARCOMPILER = GCC4 -#GARCOMPILER = GCC5 +GARCOMPILER = GNU MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 MAKE_OPT = $(MAKE_OPT_$(shell hostname)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Thu Dec 17 21:50:34 2015 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Thu, 17 Dec 2015 20:50:34 +0000 Subject: SF.net SVN: gar:[25469] csw/mgar/pkg/mercurial/trunk Message-ID: <3pM57l67sdz1G7@mail.opencsw.org> Revision: 25469 http://sourceforge.net/p/gar/code/25469 Author: rthurner Date: 2015-12-17 20:50:34 +0000 (Thu, 17 Dec 2015) Log Message: ----------- mercurial/trunk: update to hg-3.6.2. Modified Paths: -------------- csw/mgar/pkg/mercurial/trunk/Makefile csw/mgar/pkg/mercurial/trunk/checksums Modified: csw/mgar/pkg/mercurial/trunk/Makefile =================================================================== --- csw/mgar/pkg/mercurial/trunk/Makefile 2015-12-17 15:33:04 UTC (rev 25468) +++ csw/mgar/pkg/mercurial/trunk/Makefile 2015-12-17 20:50:34 UTC (rev 25469) @@ -1,5 +1,5 @@ NAME = mercurial -VERSION = 3.6.1 +VERSION = 3.6.2 CATEGORIES = python GARTYPE = v2 Modified: csw/mgar/pkg/mercurial/trunk/checksums =================================================================== --- csw/mgar/pkg/mercurial/trunk/checksums 2015-12-17 15:33:04 UTC (rev 25468) +++ csw/mgar/pkg/mercurial/trunk/checksums 2015-12-17 20:50:34 UTC (rev 25469) @@ -1 +1 @@ -4c43a232f82bd4df3a10cc90c5c954a8 mercurial-3.6.1.tar.gz +f1155a562652004f569e5564d3c82661 mercurial-3.6.2.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Thu Dec 17 21:58:34 2015 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Thu, 17 Dec 2015 20:58:34 +0000 Subject: SF.net SVN: gar:[25470] csw/mgar/pkg/subversion/trunk Message-ID: <3pM5K05nx2z1Jk@mail.opencsw.org> Revision: 25470 http://sourceforge.net/p/gar/code/25470 Author: rthurner Date: 2015-12-17 20:58:34 +0000 (Thu, 17 Dec 2015) Log Message: ----------- subversion/trunk: upgrade to svn-1.8.15 Modified Paths: -------------- csw/mgar/pkg/subversion/trunk/Makefile csw/mgar/pkg/subversion/trunk/checksums Modified: csw/mgar/pkg/subversion/trunk/Makefile =================================================================== --- csw/mgar/pkg/subversion/trunk/Makefile 2015-12-17 20:50:34 UTC (rev 25469) +++ csw/mgar/pkg/subversion/trunk/Makefile 2015-12-17 20:58:34 UTC (rev 25470) @@ -20,7 +20,7 @@ # http://subversion.apache.org/mailing-lists.html NAME = subversion -VERSION = 1.8.14 +VERSION = 1.8.15 GARTYPE = v2 DESCRIPTION = Version control rethought Modified: csw/mgar/pkg/subversion/trunk/checksums =================================================================== --- csw/mgar/pkg/subversion/trunk/checksums 2015-12-17 20:50:34 UTC (rev 25469) +++ csw/mgar/pkg/subversion/trunk/checksums 2015-12-17 20:58:34 UTC (rev 25470) @@ -1 +1 @@ -fe476ba26d6835eba4393780ea907361 subversion-1.8.14.tar.bz2 +42f2ff8194b52e6287faec29f5775edf subversion-1.8.15.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rthurner at users.sourceforge.net Thu Dec 17 22:15:03 2015 From: rthurner at users.sourceforge.net (rthurner at users.sourceforge.net) Date: Thu, 17 Dec 2015 21:15:03 +0000 Subject: SF.net SVN: gar:[25471] csw/mgar/pkg/cmake/trunk Message-ID: <3pM5h068dsz1Nq@mail.opencsw.org> Revision: 25471 http://sourceforge.net/p/gar/code/25471 Author: rthurner Date: 2015-12-17 21:15:03 +0000 (Thu, 17 Dec 2015) Log Message: ----------- cmake/trunk: upgrade to cmake-3.4.1 Modified Paths: -------------- csw/mgar/pkg/cmake/trunk/Makefile csw/mgar/pkg/cmake/trunk/checksums Modified: csw/mgar/pkg/cmake/trunk/Makefile =================================================================== --- csw/mgar/pkg/cmake/trunk/Makefile 2015-12-17 20:58:34 UTC (rev 25470) +++ csw/mgar/pkg/cmake/trunk/Makefile 2015-12-17 21:15:03 UTC (rev 25471) @@ -1,7 +1,7 @@ # $Id$ NAME = cmake -VERSION = 3.3.1 +VERSION = 3.4.1 GARTYPE = v2 DESCRIPTION = Cross-platform make Modified: csw/mgar/pkg/cmake/trunk/checksums =================================================================== --- csw/mgar/pkg/cmake/trunk/checksums 2015-12-17 20:58:34 UTC (rev 25470) +++ csw/mgar/pkg/cmake/trunk/checksums 2015-12-17 21:15:03 UTC (rev 25471) @@ -1 +1 @@ -52638576f4e1e621fed6c3410d3a1b12 cmake-3.3.1.tar.gz +73acda0d33be9b2729af99893d99a012 cmake-3.4.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Thu Dec 17 23:23:05 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Thu, 17 Dec 2015 22:23:05 +0000 Subject: SF.net SVN: gar:[25472] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3pM7BX0kMTz1Rx@mail.opencsw.org> Revision: 25472 http://sourceforge.net/p/gar/code/25472 Author: claudio_sf Date: 2015-12-17 22:23:04 +0000 (Thu, 17 Dec 2015) Log Message: ----------- perl/trunk: Parallel install Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 21:15:03 UTC (rev 25471) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-12-17 22:23:04 UTC (rev 25472) @@ -50,17 +50,19 @@ CONFIGURE_ARGS += -Dcc=$(CC) CONFIGURE_ARGS += -Dcf_email=$(SPKG_EMAIL) CONFIGURE_ARGS += -Dman1dir=$(mandir)/man1 -CONFIGURE_ARGS += -Dman1ext=1 +CONFIGURE_ARGS += -Dman1ext=1perl$(VERSION_MAJOR) CONFIGURE_ARGS += -Dman3dir=$(mandir)/man3 -CONFIGURE_ARGS += -Dman3ext=3perl +CONFIGURE_ARGS += -Dman3ext=3perl$(VERSION_MAJOR) CONFIGURE_ARGS += -Dperladmin="root at localhost" CONFIGURE_ARGS += -Dprefix=$(prefix) -CONFIGURE_ARGS += -Dbin=$(bindir) -CONFIGURE_ARGS += -Dscriptdir=$(bindir) +#CONFIGURE_ARGS += -Dbin=$(bindir) +#CONFIGURE_ARGS += -Dscriptdir=$(bindir) +CONFIGURE_ARGS += -Dbin=$(prefix)/perl$(VERSION_MAJOR)/bin +CONFIGURE_ARGS += -Dscriptdir=$(prefix)/perl$(VERSION_MAJOR)/bin # CSW provided modules should install in the privlib directory (/opt/csw/share/perl/5.) CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR) CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR) -CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION) +CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR) CONFIGURE_ARGS += -Dsiteman1dir=/opt/csw/local/share/man/man1 CONFIGURE_ARGS += -Dsiteman3dir==/opt/csw/local/share/man/man3 CONFIGURE_ARGS += -Dsiteprefix=/opt/csw/local @@ -69,8 +71,8 @@ CONFIGURE_ARGS += -Dusethreads CONFIGURE_ARGS += -Dusedtrace CONFIGURE_ARGS += -Duselargefiles -CONFIGURE_ARGS += -Dvendorarch=$(libdir)/perl5 -CONFIGURE_ARGS += -Dvendorlib=$(datadir)/perl5 +CONFIGURE_ARGS += -Dvendorarch=$(libdir)/perl5/$(VERSION_MAJOR) +CONFIGURE_ARGS += -Dvendorlib=$(datadir)/perl5/$(VERSION_MAJOR) CONFIGURE_ARGS += -Dvendorprefix=$(prefix) CONFIGURE_ARGS += -Dlibsdirs=" $(abspath /usr/lib/$(MEMORYMODEL)) $(libdir)" CONFIGURE_ARGS += -Dsed=/opt/csw/bin/gsed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Fri Dec 18 12:38:58 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Fri, 18 Dec 2015 11:38:58 +0000 Subject: SF.net SVN: gar:[25473] csw/mgar/pkg/nspr/trunk Message-ID: <3pMSrs4sH2zJp@mail.opencsw.org> Revision: 25473 http://sourceforge.net/p/gar/code/25473 Author: cgrzemba Date: 2015-12-18 11:38:57 +0000 (Fri, 18 Dec 2015) Log Message: ----------- nspr/trunk: update version Modified Paths: -------------- csw/mgar/pkg/nspr/trunk/Makefile csw/mgar/pkg/nspr/trunk/checksums Added Paths: ----------- csw/mgar/pkg/nspr/trunk/files/0001-export-PR_DuplicateEnvironment.patch Modified: csw/mgar/pkg/nspr/trunk/Makefile =================================================================== --- csw/mgar/pkg/nspr/trunk/Makefile 2015-12-17 22:23:04 UTC (rev 25472) +++ csw/mgar/pkg/nspr/trunk/Makefile 2015-12-18 11:38:57 UTC (rev 25473) @@ -8,7 +8,7 @@ NAME = nspr MAJOR_VERSION = 4 -MIN_VERSION = 10.8 +MIN_VERSION = 11 VERSION = $(MAJOR_VERSION).$(MIN_VERSION) GARTYPE = v2 @@ -18,10 +18,12 @@ many of Red Hat's, Sun's, and other software offerings. endef -MASTER_SITES = http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$(VERSION)/src/ +MASTER_SITES = http://ftp.mozilla.org/pub/nspr/releases/v$(VERSION)/src/ DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += LICENSE # PATCHFILES = nspr-4.6.1-config.patch +# see:https://bugzilla.mozilla.org/attachment.cgi?id=8686790&action=diff +PATCHFILES += 0001-export-PR_DuplicateEnvironment.patch PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386 Modified: csw/mgar/pkg/nspr/trunk/checksums =================================================================== --- csw/mgar/pkg/nspr/trunk/checksums 2015-12-17 22:23:04 UTC (rev 25472) +++ csw/mgar/pkg/nspr/trunk/checksums 2015-12-18 11:38:57 UTC (rev 25473) @@ -1 +1 @@ -8d7c5bd0a5b0a7d0e705be66479030a0 nspr-4.10.8.tar.gz +4f24b2fb88ca03b5d6d6931d6a67ef9a nspr-4.11.tar.gz Added: csw/mgar/pkg/nspr/trunk/files/0001-export-PR_DuplicateEnvironment.patch =================================================================== --- csw/mgar/pkg/nspr/trunk/files/0001-export-PR_DuplicateEnvironment.patch (rev 0) +++ csw/mgar/pkg/nspr/trunk/files/0001-export-PR_DuplicateEnvironment.patch 2015-12-18 11:38:57 UTC (rev 25473) @@ -0,0 +1,10 @@ +--- a/nspr/pr/src/nspr.def ++++ b/nspr/pr/src/nspr.def +@@ -455,3 +455,7 @@ EXPORTS ;- + ;+ global: + PR_SyncMemMap; + ;+} NSPR_4.9.2; ++;+NSPR_4.11 { ++;+ global: ++ PR_DuplicateEnvironment; ++;+} NSPR_4.10.3; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Fri Dec 18 16:18:07 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Fri, 18 Dec 2015 15:18:07 +0000 Subject: SF.net SVN: gar:[25474] csw/mgar/pkg/nss/trunk Message-ID: <3pMYjn5VYyzfq@mail.opencsw.org> Revision: 25474 http://sourceforge.net/p/gar/code/25474 Author: cgrzemba Date: 2015-12-18 15:18:07 +0000 (Fri, 18 Dec 2015) Log Message: ----------- nss/trunk: update version 3.21 Modified Paths: -------------- csw/mgar/pkg/nss/trunk/Makefile csw/mgar/pkg/nss/trunk/checksums csw/mgar/pkg/nss/trunk/files/0002-cmd-platlib.mk.patch csw/mgar/pkg/nss/trunk/files/nss.pc Modified: csw/mgar/pkg/nss/trunk/Makefile =================================================================== --- csw/mgar/pkg/nss/trunk/Makefile 2015-12-18 11:38:57 UTC (rev 25473) +++ csw/mgar/pkg/nss/trunk/Makefile 2015-12-18 15:18:07 UTC (rev 25474) @@ -24,10 +24,9 @@ NAME = nss MAJOR_VERSION = 3 -MINOR_VERSION = 17 -PATCHLEVEL = 4 -VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(PATCHLEVEL) -# #VERSION = $(MAJOR_VERSION).$(MINOR_VERSION) +MINOR_VERSION = 21 +PATCHLEVEL = +VERSION = $(MAJOR_VERSION).$(MINOR_VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)) GARTYPE = v2 DESCRIPTION = Network Security Services library @@ -40,7 +39,7 @@ endef SPKG_SOURCEURL = http://www.mozilla.org/projects/security/pki/nss/ # TODO: Generate RTM_NAME from VERSION -RTM_NAME = NSS_$(MAJOR_VERSION)_$(MINOR_VERSION)_$(PATCHLEVEL)_RTM +RTM_NAME = NSS_$(subst .,_,$(VERSION))_RTM ## RTM_NAME = NSS_$(MAJOR_VERSION)_$(MINOR_VERSION)_RTM MASTER_SITES = http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/$(RTM_NAME)/src/ DISTFILES = $(NAME)-$(VERSION).tar.gz @@ -59,7 +58,7 @@ # PATCHFILES += 0006-platlibs.mk-linking-bltest.patch # PATCHFILES += 0006-config.mk-linking.patch # PATCHFILES += 0005-change-rpath-for-bins-in-platlibs.mk.patch -PATCHFILES += 0001-softtoken-config.mk.patch +# PATCHFILES += 0001-softtoken-config.mk.patch PATCHFILES += 0002-cmd-platlib.mk.patch PATCHFILES += 0003-sysinit-config.mk.patch PATCHFILES += 0005-SunOS5.mk.patch @@ -212,7 +211,7 @@ CHECKPKG_OVERRIDES_CSWnss3-tools += surplus-dependency|CSWlibfreebl3 CHECKPKG_OVERRIDES_CSWnss3-tools += surplus-dependency|CSWlibnssdbm3 CHECKPKG_OVERRIDES_CSWnss3-tools += surplus-dependency|CSWlibsoftokn3 -OBSOLETED_BY_CSWnss3-tools = CSWlibnss3-tools +# OBSOLETED_BY_CSWnss3-tools = CSWlibnss3-tools BUILD_DEP_PKGS += CSWnspr-dev BUILD_DEP_PKGS += CSWlibsqlite3-dev @@ -303,11 +302,14 @@ TEST_SCRIPTS = include gar/category.mk +# Google Test require g++ +GTESTS = $(if $(filter SOS%,$(GARCOMPILER)), NSS_DISABLE_GTESTS=1) + # build-nss: build-coreconf build-dbm build-nss-compile build-nss: (cd $(WORKSRC)/nss \ CPPFLAGS='$(CPPFLAGS)' LD_OPTIONS='$(LD_OPTIONS)' \ - && env && gmake all prefix=$(prefix) BUILD_SUN_PKG=1 $(GARCOMP_FLAGS_$(GARCOMPILER)) NO_MDUPDATE=1) + && env && gmake all prefix=$(prefix) BUILD_SUN_PKG=1 $(GARCOMP_FLAGS_$(GARCOMPILER)) NO_MDUPDATE=1 $(GTESTS) ) @$(MAKECOOKIE) build-coreconf: Modified: csw/mgar/pkg/nss/trunk/checksums =================================================================== --- csw/mgar/pkg/nss/trunk/checksums 2015-12-18 11:38:57 UTC (rev 25473) +++ csw/mgar/pkg/nss/trunk/checksums 2015-12-18 15:18:07 UTC (rev 25474) @@ -1 +1 @@ -a77df26072cabf8afb26911b6fa9b755 nss-3.17.4.tar.gz +3c8b2ed880dd3a8d86c9e0151afe6eba nss-3.21.tar.gz Modified: csw/mgar/pkg/nss/trunk/files/0002-cmd-platlib.mk.patch =================================================================== --- csw/mgar/pkg/nss/trunk/files/0002-cmd-platlib.mk.patch 2015-12-18 11:38:57 UTC (rev 25473) +++ csw/mgar/pkg/nss/trunk/files/0002-cmd-platlib.mk.patch 2015-12-18 15:18:07 UTC (rev 25474) @@ -21,11 +21,14 @@ ifeq ($(OS_ARCH), Linux) ifeq ($(USE_64), 1) + +--- a/nss/cmd/platlibs.mk ++++ b/nss/cmd/platlibs.mk @@ -135,14 +135,14 @@ endif # $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS) # $(EXTRA_SHARED_LIBS) come before $(OS_LIBS), except on AIX. EXTRA_SHARED_LIBS += \ -- -L$(DIST)/lib \ +- -L$(SQLITE_LIB_DIR) \ - -l$(SQLITE_LIB_NAME) \ -L$(NSSUTIL_LIB_DIR) \ -lnssutil3 \ @@ -33,7 +36,7 @@ -lplc4 \ -lplds4 \ -lnspr4 \ -+ -L$(prefix)/lib \ ++ -L$(SQLITE_LIB_DIR) \ + -l$(SQLITE_LIB_NAME) \ $(NULL) endif Modified: csw/mgar/pkg/nss/trunk/files/nss.pc =================================================================== --- csw/mgar/pkg/nss/trunk/files/nss.pc 2015-12-18 11:38:57 UTC (rev 25473) +++ csw/mgar/pkg/nss/trunk/files/nss.pc 2015-12-18 15:18:07 UTC (rev 25474) @@ -5,7 +5,7 @@ Name: NSS Description: Network Security Services -Version: 3.17.4 -Requires: nspr >= 4.10.7 +Version: 3.21 +Requires: nspr >= 4.10.10 Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3 -R${libdir} Cflags: -I${includedir} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 19:08:22 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 18:08:22 +0000 Subject: SF.net SVN: gar:[25475] csw/mgar/pkg Message-ID: <3pNsPP72Whz1Sf@mail.opencsw.org> Revision: 25475 http://sourceforge.net/p/gar/code/25475 Author: claudio_sf Date: 2015-12-20 18:08:22 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Parallel install Added Paths: ----------- csw/mgar/pkg/perl5/ csw/mgar/pkg/perl5/Makefile csw/mgar/pkg/perl5/branches/ csw/mgar/pkg/perl5/tags/ csw/mgar/pkg/perl5/trunk/ csw/mgar/pkg/perl5/trunk/Makefile csw/mgar/pkg/perl5/trunk/checksums csw/mgar/pkg/perl5/trunk/files/ Added: csw/mgar/pkg/perl5/Makefile =================================================================== --- csw/mgar/pkg/perl5/Makefile (rev 0) +++ csw/mgar/pkg/perl5/Makefile 2015-12-20 18:08:22 UTC (rev 25475) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/perl5/trunk =================================================================== --- csw/mgar/pkg/perl5/trunk 2015-12-18 15:18:07 UTC (rev 25474) +++ csw/mgar/pkg/perl5/trunk 2015-12-20 18:08:22 UTC (rev 25475) Property changes on: csw/mgar/pkg/perl5/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile (rev 0) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 18:08:22 UTC (rev 25475) @@ -0,0 +1,116 @@ +NAME = perl5 +VERSION = 22.1 +VERSION_MAJOR = $(shell echo $(VERSION) | cut -f1-2 -d.) +VERSION_FULL = 5.$(VERSION) +VERSION_MAJOR_FULL = 5.$(VERSION_MAJOR) +GARTYPE = v2 +DESCRIPTION = A high-level, general-purpose programming language +define BLURB + Perl 5 is a high-level, general-purpose programming language that makes easy + things easy and hard things possible. It is optimized for scanning arbitrary + text files and system administration. It has built-in extended regular + expression matching and replacement, a dataflow mechanism to improve security + with setuid scripts and is extendable via modules that can interface to C + libraries. + This package is built with gcc. +endef + +#MASTER_SITES = manual:// +MASTER_SITES = http://www.cpan.org/src/5.0/ +VENDOR_URL = http://www.perl.org +DISTFILES = perl-$(VERSION_FULL).tar.bz2 +PACKAGING_PLATFORMS += solaris10-i386 solaris10-sparc +PACKAGES = CSWperl5 +PKG_DESC_CSWperl = $(DESCRIPTION) +SPKG_DESC_CSWperl = $(DESCRIPTION) +LICENSE = Copying + +# GCC build (Sun Studio build has been fixed) +GARCOMPILER = GNU +MAKE_OPT_unstable10s = -j 24 +MAKE_OPT_unstable10x = -j 4 +MAKE_OPT = $(MAKE_OPT_$(shell hostname)) +BUILD64 = 1 +ISAEXEC = 1 +IGNORE_DESTDIR = 1 +# a .git directory will cause failing upstream author tests (the source will be considered blead) +NOGITPATCH = 1 +EXTRA_RUNPATH_DIRS = $(libdir)/perl/$(VERSION_MAJOR_FULL)/CORE +EXTRA_RUNPATH_ISALIST = $(EXTRA_RUNPATH_DIRS) + +# Custom configure +CONFIGURE_SCRIPTS = perl +CONFIGURE_ARGS += -Darchlib=$(libdir)/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dcc=$(CC) +CONFIGURE_ARGS += -Dcf_email=$(SPKG_EMAIL) +CONFIGURE_ARGS += -Dman1dir=$(mandir)/man1 +CONFIGURE_ARGS += -Dman1ext=1perl$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dman3dir=$(mandir)/man3 +CONFIGURE_ARGS += -Dman3ext=3perl$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dperladmin="root at localhost" +CONFIGURE_ARGS += -Dprefix=$(prefix) +#CONFIGURE_ARGS += -Dbin=$(bindir) +#CONFIGURE_ARGS += -Dscriptdir=$(bindir) +CONFIGURE_ARGS += -Dbin=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin +CONFIGURE_ARGS += -Dscriptdir=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin +# CSW provided modules should install in the privlib directory (/opt/csw/share/perl/5.) +CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dsiteman1dir=/opt/csw/local/share/man/man1 +CONFIGURE_ARGS += -Dsiteman3dir==/opt/csw/local/share/man/man3 +CONFIGURE_ARGS += -Dsiteprefix=/opt/csw/local +CONFIGURE_ARGS += -Duseshrplib +CONFIGURE_ARGS += -Dusesitecustomize +CONFIGURE_ARGS += -Dusethreads +CONFIGURE_ARGS += -Dusedtrace +CONFIGURE_ARGS += -Duselargefiles +CONFIGURE_ARGS += -Dvendorarch=$(libdir)/perl5/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dvendorlib=$(datadir)/perl5/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dvendorprefix=$(prefix) +CONFIGURE_ARGS += -Dlibsdirs=" $(abspath /usr/lib/$(MEMORYMODEL)) $(libdir)" +CONFIGURE_ARGS += -Dsed=/opt/csw/bin/gsed +CONFIGURE_ARGS-64 += -Duse64bitint +CONFIGURE_ARGS-64 += -Duse64bitall +CONFIGURE_ARGS += $(CONFIGURE_ARGS-$(MEMORYMODEL)) +CONFIGURE_ARGS += -Dlddlflags=-shared + +# We want 64 bit binaries +MERGE_DIRS_isa-extra = $(bindir) $(sbindir) $(libdir) $(libexecdir) + +BUILD_SCRIPTS = perl +TEST_SCRIPTS = perl + +# Get it built +RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSWperl5 += CSWlibssp0 +RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgdbm4 +CHECKPKG_OVERRIDES_CSWperl5 += file-with-bad-content +#CHECKPKG_OVERRIDES_CSWpm-cpan-meta-requirements += catalogname-too-long + +include gar/category.mk + +# Configure + +PATH:=/opt/csw/gnu:$(PATH) +configure-perl: CONFIGURE_EXPORTS = PATH LD_OPTIONS +configure-perl: + (cd $(WORKSRC) ; $(CONFIGURE_ENV) ./Configure $(CONFIGURE_ARGS) -ders) + @$(MAKECOOKIE) + +# Build +build-perl: BUILD_EXPORTS = LD_OPTIONS +build-perl: + @echo " ==> Running make in $*" + cd $(WORKSRC) && $(BUILD_ENV) $(MAKE) $(MAKE_OPT) + @$(MAKECOOKIE) + +# Test +# Beware, test may fail when run in paralled. We leave it like this because it's a lot faster and the failure not very common. Just rerun mgar test. +# You can always run the test single threaded if needed. +test-perl: + @echo " ==> Running make $(TEST_TARGET) in $*" + # workaround gar pwd bug (PWD is not changed with cd from Makefile: + # http://sourceforge.net/apps/trac/gar/ticket/78 + cd $(WORKSRC) && PWD=`pwd` $(MAKE) $(MAKE_OPT) test + @$(MAKECOOKIE) Property changes on: csw/mgar/pkg/perl5/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/perl5/trunk/checksums =================================================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 19:25:25 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 18:25:25 +0000 Subject: SF.net SVN: gar:[25476] csw/mgar/pkg/perl5/trunk Message-ID: <3pNsmy48PKz1WF@mail.opencsw.org> Revision: 25476 http://sourceforge.net/p/gar/code/25476 Author: claudio_sf Date: 2015-12-20 18:25:25 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Change distname Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile csw/mgar/pkg/perl5/trunk/checksums Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 18:08:22 UTC (rev 25475) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 18:25:25 UTC (rev 25476) @@ -4,6 +4,7 @@ VERSION_FULL = 5.$(VERSION) VERSION_MAJOR_FULL = 5.$(VERSION_MAJOR) GARTYPE = v2 +DISTNAME = perl-$(VERSION_FULL) DESCRIPTION = A high-level, general-purpose programming language define BLURB Perl 5 is a high-level, general-purpose programming language that makes easy @@ -23,63 +24,62 @@ PACKAGES = CSWperl5 PKG_DESC_CSWperl = $(DESCRIPTION) SPKG_DESC_CSWperl = $(DESCRIPTION) -LICENSE = Copying +LICENSE = Copying # GCC build (Sun Studio build has been fixed) GARCOMPILER = GNU MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 -MAKE_OPT = $(MAKE_OPT_$(shell hostname)) +MAKE_OPT = $(MAKE_OPT_$(shell hostname)) BUILD64 = 1 ISAEXEC = 1 IGNORE_DESTDIR = 1 # a .git directory will cause failing upstream author tests (the source will be considered blead) -NOGITPATCH = 1 +NOGITPATCH = 1 EXTRA_RUNPATH_DIRS = $(libdir)/perl/$(VERSION_MAJOR_FULL)/CORE EXTRA_RUNPATH_ISALIST = $(EXTRA_RUNPATH_DIRS) # Custom configure CONFIGURE_SCRIPTS = perl -CONFIGURE_ARGS += -Darchlib=$(libdir)/perl/$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dcc=$(CC) -CONFIGURE_ARGS += -Dcf_email=$(SPKG_EMAIL) -CONFIGURE_ARGS += -Dman1dir=$(mandir)/man1 -CONFIGURE_ARGS += -Dman1ext=1perl$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dman3dir=$(mandir)/man3 -CONFIGURE_ARGS += -Dman3ext=3perl$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dperladmin="root at localhost" -CONFIGURE_ARGS += -Dprefix=$(prefix) -#CONFIGURE_ARGS += -Dbin=$(bindir) -#CONFIGURE_ARGS += -Dscriptdir=$(bindir) -CONFIGURE_ARGS += -Dbin=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin -CONFIGURE_ARGS += -Dscriptdir=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin -# CSW provided modules should install in the privlib directory (/opt/csw/share/perl/5.) -CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dsiteman1dir=/opt/csw/local/share/man/man1 -CONFIGURE_ARGS += -Dsiteman3dir==/opt/csw/local/share/man/man3 -CONFIGURE_ARGS += -Dsiteprefix=/opt/csw/local -CONFIGURE_ARGS += -Duseshrplib -CONFIGURE_ARGS += -Dusesitecustomize -CONFIGURE_ARGS += -Dusethreads -CONFIGURE_ARGS += -Dusedtrace -CONFIGURE_ARGS += -Duselargefiles -CONFIGURE_ARGS += -Dvendorarch=$(libdir)/perl5/$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dvendorlib=$(datadir)/perl5/$(VERSION_MAJOR_FULL) -CONFIGURE_ARGS += -Dvendorprefix=$(prefix) -CONFIGURE_ARGS += -Dlibsdirs=" $(abspath /usr/lib/$(MEMORYMODEL)) $(libdir)" -CONFIGURE_ARGS += -Dsed=/opt/csw/bin/gsed +CONFIGURE_ARGS += -Darchlib=$(libdir)/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dcc=$(CC) +CONFIGURE_ARGS += -Dcf_email=$(SPKG_EMAIL) +CONFIGURE_ARGS += -Dman1dir=$(mandir)/man1 +CONFIGURE_ARGS += -Dman1ext=1perl$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dman3dir=$(mandir)/man3 +CONFIGURE_ARGS += -Dman3ext=3perl$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dperladmin="root at localhost" +CONFIGURE_ARGS += -Dprefix=$(prefix) +CONFIGURE_ARGS += -Dbin=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin +CONFIGURE_ARGS += -Dscriptdir=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin +CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dsiteman1dir=/opt/csw/local/share/man/man1 +CONFIGURE_ARGS += -Dsiteman3dir==/opt/csw/local/share/man/man3 +CONFIGURE_ARGS += -Dsiteprefix=/opt/csw/local +CONFIGURE_ARGS += -Duseshrplib +CONFIGURE_ARGS += -Dusesitecustomize +CONFIGURE_ARGS += -Dusethreads +CONFIGURE_ARGS += -Dusedtrace +CONFIGURE_ARGS += -Duselargefiles +CONFIGURE_ARGS += -Dvendorarch=$(libdir)/perl5/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dvendorlib=$(datadir)/perl5/$(VERSION_MAJOR_FULL) +CONFIGURE_ARGS += -Dvendorprefix=$(prefix) +CONFIGURE_ARGS += -Dlibsdirs=" $(abspath /usr/lib/$(MEMORYMODEL)) $(libdir)" +CONFIGURE_ARGS += -Dsed=/opt/csw/bin/gsed +CONFIGURE_ARGS += -Dlddlflags=-shared + CONFIGURE_ARGS-64 += -Duse64bitint CONFIGURE_ARGS-64 += -Duse64bitall -CONFIGURE_ARGS += $(CONFIGURE_ARGS-$(MEMORYMODEL)) -CONFIGURE_ARGS += -Dlddlflags=-shared +CONFIGURE_ARGS += $(CONFIGURE_ARGS-$(MEMORYMODEL)) + # We want 64 bit binaries MERGE_DIRS_isa-extra = $(bindir) $(sbindir) $(libdir) $(libexecdir) BUILD_SCRIPTS = perl -TEST_SCRIPTS = perl +TEST_SCRIPTS = perl # Get it built RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgcc-s1 Modified: csw/mgar/pkg/perl5/trunk/checksums =================================================================== --- csw/mgar/pkg/perl5/trunk/checksums 2015-12-20 18:08:22 UTC (rev 25475) +++ csw/mgar/pkg/perl5/trunk/checksums 2015-12-20 18:25:25 UTC (rev 25476) @@ -0,0 +1 @@ +67242b9bd642b458bec884ed2a040910 perl-5.22.1.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 19:52:06 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 18:52:06 +0000 Subject: SF.net SVN: gar:[25477] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pNtMh1jWWz1K@mail.opencsw.org> Revision: 25477 http://sourceforge.net/p/gar/code/25477 Author: claudio_sf Date: 2015-12-20 18:52:06 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Document false positive Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 18:25:25 UTC (rev 25476) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 18:52:06 UTC (rev 25477) @@ -106,8 +106,17 @@ @$(MAKECOOKIE) # Test -# Beware, test may fail when run in paralled. We leave it like this because it's a lot faster and the failure not very common. Just rerun mgar test. -# You can always run the test single threaded if needed. +# This test fails due the NFS setup of the buildfarm. If only this test fails +# just package it wit +# $ SKIPTEST=1 mgar package +# cpan/ExtUtils-Command/t/cp .................................... # Failed test 'cp updated mtime' +# at t/cp.t line 26. +# '2366' +# <= +# '1' +# Looks like you failed 1 test of 1. +# FAILED at test 1 + test-perl: @echo " ==> Running make $(TEST_TARGET) in $*" # workaround gar pwd bug (PWD is not changed with cd from Makefile: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 20:43:45 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 19:43:45 +0000 Subject: SF.net SVN: gar:[25478] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pNvWJ047kz4x@mail.opencsw.org> Revision: 25478 http://sourceforge.net/p/gar/code/25478 Author: claudio_sf Date: 2015-12-20 19:43:44 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Override Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 18:52:06 UTC (rev 25477) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 19:43:44 UTC (rev 25478) @@ -86,6 +86,7 @@ RUNTIME_DEP_PKGS_CSWperl5 += CSWlibssp0 RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgdbm4 CHECKPKG_OVERRIDES_CSWperl5 += file-with-bad-content +CHECKPKG_OVERRIDES_CSWperl5 += missing-dependency|CSWperl #CHECKPKG_OVERRIDES_CSWpm-cpan-meta-requirements += catalogname-too-long include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 20:49:04 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 19:49:04 +0000 Subject: SF.net SVN: gar:[25479] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pNvdP6ZWnz7N@mail.opencsw.org> Revision: 25479 http://sourceforge.net/p/gar/code/25479 Author: claudio_sf Date: 2015-12-20 19:49:04 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Overrides Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 19:43:44 UTC (rev 25478) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 19:49:04 UTC (rev 25479) @@ -86,8 +86,9 @@ RUNTIME_DEP_PKGS_CSWperl5 += CSWlibssp0 RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgdbm4 CHECKPKG_OVERRIDES_CSWperl5 += file-with-bad-content +# Temporary deps +RUNTIME_DEP_PKGS_CSWperl5 += CSWperl CHECKPKG_OVERRIDES_CSWperl5 += missing-dependency|CSWperl -#CHECKPKG_OVERRIDES_CSWpm-cpan-meta-requirements += catalogname-too-long include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 20:50:43 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 19:50:43 +0000 Subject: SF.net SVN: gar:[25480] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pNvgJ03CXz9v@mail.opencsw.org> Revision: 25480 http://sourceforge.net/p/gar/code/25480 Author: claudio_sf Date: 2015-12-20 19:50:42 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Overrides Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 19:49:04 UTC (rev 25479) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 19:50:42 UTC (rev 25480) @@ -87,7 +87,7 @@ RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgdbm4 CHECKPKG_OVERRIDES_CSWperl5 += file-with-bad-content # Temporary deps -RUNTIME_DEP_PKGS_CSWperl5 += CSWperl +#RUNTIME_DEP_PKGS_CSWperl5 += CSWperl CHECKPKG_OVERRIDES_CSWperl5 += missing-dependency|CSWperl include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 23:38:47 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 22:38:47 +0000 Subject: SF.net SVN: gar:[25481] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pNzPF6nKyzHk@mail.opencsw.org> Revision: 25481 http://sourceforge.net/p/gar/code/25481 Author: claudio_sf Date: 2015-12-20 22:38:47 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Overrides Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 19:50:42 UTC (rev 25480) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 22:38:47 UTC (rev 25481) @@ -50,8 +50,8 @@ CONFIGURE_ARGS += -Dman3ext=3perl$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dperladmin="root at localhost" CONFIGURE_ARGS += -Dprefix=$(prefix) -CONFIGURE_ARGS += -Dbin=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin -CONFIGURE_ARGS += -Dscriptdir=$(prefix)/perl$(VERSION_MAJOR_FULL)/bin +CONFIGURE_ARGS += -Dbin=$(prefix)/$(NAME)/bin +CONFIGURE_ARGS += -Dscriptdir=$(prefix)/$(NAME)/bin CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Sun Dec 20 23:41:58 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 20 Dec 2015 22:41:58 +0000 Subject: SF.net SVN: gar:[25482] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pNzSv4nS0zL7@mail.opencsw.org> Revision: 25482 http://sourceforge.net/p/gar/code/25482 Author: claudio_sf Date: 2015-12-20 22:41:57 +0000 (Sun, 20 Dec 2015) Log Message: ----------- perl5/trunk: Overrides Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 22:38:47 UTC (rev 25481) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-20 22:41:57 UTC (rev 25482) @@ -87,8 +87,10 @@ RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgdbm4 CHECKPKG_OVERRIDES_CSWperl5 += file-with-bad-content # Temporary deps -#RUNTIME_DEP_PKGS_CSWperl5 += CSWperl +RUNTIME_DEP_PKGS_CSWperl5 += CSWperl CHECKPKG_OVERRIDES_CSWperl5 += missing-dependency|CSWperl +# weird .nfs* file leftover +CHECKPKG_OVERRIDES_CSWperl5 += pkginfo-opencsw-repository-uncommitted include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Sun Dec 20 23:52:27 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Sun, 20 Dec 2015 22:52:27 +0000 Subject: SF.net SVN: gar:[25483] csw/mgar/pkg/gnustep-make/trunk/Makefile Message-ID: <3pNzj14mLnzNf@mail.opencsw.org> Revision: 25483 http://sourceforge.net/p/gar/code/25483 Author: rmottola Date: 2015-12-20 22:52:27 +0000 (Sun, 20 Dec 2015) Log Message: ----------- gnustep-make/trunk: gcc4 vs gcc5 dependency Modified Paths: -------------- csw/mgar/pkg/gnustep-make/trunk/Makefile Modified: csw/mgar/pkg/gnustep-make/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnustep-make/trunk/Makefile 2015-12-20 22:41:57 UTC (rev 25482) +++ csw/mgar/pkg/gnustep-make/trunk/Makefile 2015-12-20 22:52:27 UTC (rev 25483) @@ -11,9 +11,12 @@ endef BUILD_DEP_PKGS = CSWgmake -BUILD_DEP_PKGS += CSWgcc4objc BUILD_DEP_PKGS += CSWgtar +BUILD_DEP_PKGS_5.9 += CSWgcc4objc +BUILD_DEP_PKGS_5.10 += CSWgcc5objc +BUILD_DEP_PKGS += $(BUILD_DEP_PKGS_$(GAROSREL)) + MASTER_SITES = ftp://ftp.gnustep.org/pub/gnustep/core/ DISTFILES = $(DISTNAME).tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Mon Dec 21 10:22:16 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Mon, 21 Dec 2015 09:22:16 +0000 Subject: SF.net SVN: gar:[25484] csw/mgar/pkg/openssl1/trunk Message-ID: <3pPFj46Ls5zXL@mail.opencsw.org> Revision: 25484 http://sourceforge.net/p/gar/code/25484 Author: janholzh Date: 2015-12-21 09:22:16 +0000 (Mon, 21 Dec 2015) Log Message: ----------- openssl1/trunk: fix the T4 patch, now that oracle published it Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/trunk/files/update-t4-patch.sh Removed Paths: ------------- csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-20 22:52:27 UTC (rev 25483) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-21 09:22:16 UTC (rev 25484) @@ -165,8 +165,6 @@ # so we will apply the wanboot patch even if we will not enable wanboot PATCHFILES.sparc.5.11 += openssl-1.0.1m-wanboot.patch PATCHFILES.sparc.5.11 += openssl-1.0.1m-t4-engine.sparc.5.11.patch -# Next patch used to be in openssl-1.0.1m-t4-engine.sparc.5.11.patch doesn't apply corretly anymore. wait for oracle to release new version -PATCHFILES.sparc.5.11 += 0015-new_des3.c.patch PATCHFILES.sparc.5.11 += openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch PATCHFILES += $(PATCHFILES.$(GARCH).$(GAROSREL)) Deleted: csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch 2015-12-20 22:52:27 UTC (rev 25483) +++ csw/mgar/pkg/openssl1/trunk/files/0015-new_des3.c.patch 2015-12-21 09:22:16 UTC (rev 25484) @@ -1,90 +0,0 @@ -From 828b1d51cd182e3840df464875c6af4c01803a54 Mon Sep 17 00:00:00 2001 -From: Jan Holzhueter -Date: Fri, 4 Dec 2015 11:31:22 +0100 -Subject: [PATCH] new_des3.c - ---- - crypto/evp/e_des3.c | 49 ++++++++++++++++++++++++++++++++++--------------- - 1 file changed, 34 insertions(+), 15 deletions(-) - -diff --git a/crypto/evp/e_des3.c b/crypto/evp/e_des3.c -index fe80d82..395c85b 100644 ---- a/crypto/evp/e_des3.c -+++ b/crypto/evp/e_des3.c -@@ -239,39 +239,58 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - - BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede_init_key, NULL, NULL, NULL, -+ des3_ctrl) - # define des_ede3_cfb64_cipher des_ede_cfb64_cipher - # define des_ede3_ofb_cipher des_ede_ofb_cipher - # define des_ede3_cbc_cipher des_ede_cbc_cipher - # define des_ede3_ecb_cipher des_ede_ecb_cipher - BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) -- || DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ || DES_set_key_checked(&deskey[1],&dat->ks2)) - return 0; - # else -- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); - # endif -- memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); -+ memcpy(&dat->ks3,&dat->ks1, sizeof(dat->ks1)); - return 1; - } - --- -2.4.0 - Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-12-20 22:52:27 UTC (rev 25483) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-12-21 09:22:16 UTC (rev 25484) @@ -1201,6 +1201,80 @@ return 1; } +@@ -215,39 +239,58 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + } + + BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, +- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede_init_key, NULL, NULL, NULL, ++ des3_ctrl) + # define des_ede3_cfb64_cipher des_ede_cfb64_cipher + # define des_ede3_ofb_cipher des_ede_ofb_cipher + # define des_ede3_cbc_cipher des_ede_cbc_cipher + # define des_ede3_ecb_cipher des_ede_ecb_cipher + BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, +- EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, +- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, +- EVP_CIPHER_set_asn1_iv, +- EVP_CIPHER_get_asn1_iv, des3_ctrl) ++ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, ++ des_ede3_init_key, NULL, NULL, NULL, ++ des3_ctrl) + + static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, + const unsigned char *iv, int enc) + { + DES_cblock *deskey = (DES_cblock *)key; ++ DES_EDE_KEY *dat = data(ctx); ++ ++ dat->stream.cbc = NULL; ++#if defined(SPARC_DES_CAPABLE) ++ if (SPARC_DES_CAPABLE) { ++ int mode = ctx->cipher->flags & EVP_CIPH_MODE; ++ ++ if (mode == EVP_CIPH_CBC_MODE) { ++ des_t4_key_expand(&deskey[0],&dat->ks1); ++ des_t4_key_expand(&deskey[1],&dat->ks2); ++ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); ++ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : ++ des_t4_ede3_cbc_decrypt; ++ return 1; ++ } ++ } ++#endif + # ifdef EVP_CHECK_DES_KEY +- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) +- || DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) ++ if (DES_set_key_checked(&deskey[0],&dat->ks1) ++ || DES_set_key_checked(&deskey[1],&dat->ks2)) + return 0; + # else +- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); +- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); ++ DES_set_key_unchecked(&deskey[0],&dat->ks1); ++ DES_set_key_unchecked(&deskey[1],&dat->ks2); + # endif +- memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); ++ memcpy(&dat->ks3,&dat->ks1, sizeof(dat->ks1)); + return 1; + } + @@ -255,6 +298,8 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, const unsigned char *iv, int enc) { Deleted: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old 2015-12-20 22:52:27 UTC (rev 25483) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch.old 2015-12-21 09:22:16 UTC (rev 25484) @@ -1,7826 +0,0 @@ -# This file adds inline T4 instruction support to OpenSSL upstream code. -# The change was brought in from OpenSSL 1.0.2. -# -Index: Configure -=================================================================== -diff -ru openssl-1.0.1e/Configure openssl-1.0.1e/Configure ---- openssl-1.0.1e/Configure 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/Configure 2011-07-27 10:48:17.817470000 -0700 -@@ -135,7 +135,7 @@ - - my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o:"; - my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void"; --my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; -+my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o:des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; - my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void"; - my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void"; - my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::"; -Index: crypto/sparccpuid.S -=================================================================== -diff -ru openssl-1.0.1e/crypto/sparccpuid.S openssl-1.0.1e/crypto/sparccpuid.S ---- openssl-1.0.1e/crypto/sparccpuid.S 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sparccpuid.S 2011-07-27 10:48:17.817470000 -0700 -@@ -1,3 +1,7 @@ -+#ifdef OPENSSL_FIPSCANISTER -+#include -+#endif -+ - #if defined(__SUNPRO_C) && defined(__sparcv9) - # define ABI64 /* They've said -xarch=v9 at command line */ - #elif defined(__GNUC__) && defined(__arch64__) -@@ -235,10 +239,10 @@ - .global _sparcv9_vis1_probe - .align 8 - _sparcv9_vis1_probe: -+ .word 0x81b00d80 !fxor %f0,%f0,%f0 - add %sp,BIAS+2,%o1 -- .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - retl -- .word 0x81b00d80 !fxor %f0,%f0,%f0 -+ .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - .type _sparcv9_vis1_probe,#function - .size _sparcv9_vis1_probe,.-_sparcv9_vis1_probe - -@@ -251,7 +255,12 @@ - ! UltraSPARC IIe 7 - ! UltraSPARC III 7 - ! UltraSPARC T1 24 -+! SPARC T4 65(*) - ! -+! (*) result has lesser to do with VIS instruction latencies, rdtick -+! appears that slow, but it does the trick in sense that FP and -+! VIS code paths are still slower than integer-only ones. -+! - ! Numbers for T2 and SPARC64 V-VII are more than welcomed. - ! - ! It would be possible to detect specifically US-T1 by instrumenting -@@ -260,6 +269,8 @@ - .global _sparcv9_vis1_instrument - .align 8 - _sparcv9_vis1_instrument: -+ .word 0x81b00d80 !fxor %f0,%f0,%f0 -+ .word 0x85b08d82 !fxor %f2,%f2,%f2 - .word 0x91410000 !rd %tick,%o0 - .word 0x81b00d80 !fxor %f0,%f0,%f0 - .word 0x85b08d82 !fxor %f2,%f2,%f2 -@@ -314,6 +325,30 @@ - .type _sparcv9_fmadd_probe,#function - .size _sparcv9_fmadd_probe,.-_sparcv9_fmadd_probe - -+.global _sparcv9_rdcfr -+.align 8 -+_sparcv9_rdcfr: -+ retl -+ .word 0x91468000 !rd %asr26,%o0 -+.type _sparcv9_rdcfr,#function -+.size _sparcv9_rdcfr,.-_sparcv9_rdcfr -+ -+.global _sparcv9_vis3_probe -+.align 8 -+_sparcv9_vis3_probe: -+ retl -+ .word 0x81b022a0 !xmulx %g0,%g0,%g0 -+.type _sparcv9_vis3_probe,#function -+.size _sparcv9_vis3_probe,.-_sparcv9_vis3_probe -+ -+.global _sparcv9_random -+.align 8 -+_sparcv9_random: -+ retl -+ .word 0x91b002a0 !random %o0 -+.type _sparcv9_random,#function -+.size _sparcv9_random,.-_sparcv9_vis3_probe -+ - .global OPENSSL_cleanse - .align 32 - OPENSSL_cleanse: -@@ -398,6 +433,102 @@ - .size OPENSSL_cleanse,.-OPENSSL_cleanse - - #ifndef _BOOT -+.global _sparcv9_vis1_instrument_bus -+.align 8 -+_sparcv9_vis1_instrument_bus: -+ mov %o1,%o3 ! save cnt -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ mov %o4,%o5 ! lasttick = tick -+ set 0,%g4 ! diff -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+.Loop: .word 0x99410000 !rd %tick,%o4 -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ subcc %o1,1,%o1 ! --$cnt -+ bnz .Loop -+ add %o0,4,%o0 ! ++$out -+ -+ retl -+ mov %o3,%o0 -+.type _sparcv9_vis1_instrument_bus,#function -+.size _sparcv9_vis1_instrument_bus,.-_sparcv9_vis1_instrument_bus -+ -+.global _sparcv9_vis1_instrument_bus2 -+.align 8 -+_sparcv9_vis1_instrument_bus2: -+ mov %o1,%o3 ! save cnt -+ sll %o1,2,%o1 ! cnt*=4 -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ mov %o4,%o5 ! lasttick = tick -+ set 0,%g4 ! diff -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ mov %g4,%g5 ! lastdiff=diff -+.Loop2: -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+ subcc %o2,1,%o2 ! --max -+ bz .Ldone2 -+ nop -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ cmp %g4,%g5 -+ mov %g4,%g5 ! lastdiff=diff -+ -+ .word 0x83408000 !rd %ccr,%g1 -+ and %g1,4,%g1 ! isolate zero flag -+ xor %g1,4,%g1 ! flip zero flag -+ -+ subcc %o1,%g1,%o1 ! conditional --$cnt -+ bnz .Loop2 -+ add %o0,%g1,%o0 ! conditional ++$out -+ -+.Ldone2: -+ srl %o1,2,%o1 -+ retl -+ sub %o3,%o1,%o0 -+.type _sparcv9_vis1_instrument_bus2,#function -+.size _sparcv9_vis1_instrument_bus2,.-_sparcv9_vis1_instrument_bus2 -+ - .section ".init",#alloc,#execinstr - call solaris_locking_setup - nop -Index: crypto/sparcv9cap.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/sparcv9cap.c openssl-1.0.1e/crypto/sparcv9cap.c ---- openssl-1.0.1e/crypto/sparcv9cap.c 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sparcv9cap.c 2011-07-27 10:48:17.817470000 -0700 -@@ -4,34 +4,58 @@ - #include - #include - #include -+#include - #include - --#define SPARCV9_TICK_PRIVILEGED (1<<0) --#define SPARCV9_PREFER_FPU (1<<1) --#define SPARCV9_VIS1 (1<<2) --#define SPARCV9_VIS2 (1<<3) /* reserved */ --#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ -+#include "sparc_arch.h" - -+#if defined(__GNUC__) && defined(__linux) -+__attribute__((visibility("hidden"))) -+#endif - #ifndef _BOOT --static int OPENSSL_sparcv9cap_P = SPARCV9_TICK_PRIVILEGED; -+unsigned int OPENSSL_sparcv9cap_P[2] = {SPARCV9_TICK_PRIVILEGED, 0}; - #else --static int OPENSSL_sparcv9cap_P = SPARCV9_VIS1; -+unsigned int OPENSSL_sparcv9cap_P[2] = {SPARCV9_VIS1, 0}; - #endif - - int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - const BN_ULONG *np, const BN_ULONG *n0, int num) - { -+ int bn_mul_mont_vis3(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, -+ const BN_ULONG *np,const BN_ULONG *n0, int num); - int bn_mul_mont_fpu(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - const BN_ULONG *np, const BN_ULONG *n0, int num); - int bn_mul_mont_int(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - const BN_ULONG *np, const BN_ULONG *n0, int num); - -- if (num >= 8 && !(num & 1) && -- (OPENSSL_sparcv9cap_P & (SPARCV9_PREFER_FPU | SPARCV9_VIS1)) == -- (SPARCV9_PREFER_FPU | SPARCV9_VIS1)) -- return bn_mul_mont_fpu(rp, ap, bp, np, n0, num); -- else -- return bn_mul_mont_int(rp, ap, bp, np, n0, num); -+ if (!(num&1) && num>=6) { -+ if ((num&15)==0 && num<=64 && -+ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== -+ (CFR_MONTMUL|CFR_MONTSQR)) -+ { -+ typedef int (*bn_mul_mont_f)(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_8(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_16(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_24(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_32(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ static const bn_mul_mont_f funcs[4] = { -+ bn_mul_mont_t4_8, bn_mul_mont_t4_16, -+ bn_mul_mont_t4_24, bn_mul_mont_t4_32 }; -+ bn_mul_mont_f worker = funcs[num/16-1]; -+ -+ if ((*worker)(rp,ap,bp,np,n0)) return 1; -+ /* retry once and fall back */ -+ if ((*worker)(rp,ap,bp,np,n0)) return 1; -+ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); -+ } -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3)) -+ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); -+ else if (num>=8 && -+ (OPENSSL_sparcv9cap_P[0]&(SPARCV9_PREFER_FPU|SPARCV9_VIS1)) == -+ (SPARCV9_PREFER_FPU|SPARCV9_VIS1)) -+ return bn_mul_mont_fpu(rp,ap,bp,np,n0,num); -+ } -+ return bn_mul_mont_int(rp,ap,bp,np,n0,num); - } - - unsigned long _sparcv9_rdtick(void); -@@ -39,11 +63,18 @@ - unsigned long _sparcv9_vis1_instrument(void); - void _sparcv9_vis2_probe(void); - void _sparcv9_fmadd_probe(void); -+unsigned long _sparcv9_rdcfr(void); -+void _sparcv9_vis3_probe(void); -+unsigned long _sparcv9_random(void); -+#ifndef _BOOT -+size_t _sparcv9_vis1_instrument_bus(unsigned int *,size_t); -+size_t _sparcv9_vis1_instrument_bus2(unsigned int *,size_t,size_t); -+#endif - - #ifndef _BOOT - unsigned long OPENSSL_rdtsc(void) - { -- if (OPENSSL_sparcv9cap_P & SPARCV9_TICK_PRIVILEGED) -+ if (OPENSSL_sparcv9cap_P[0] & SPARCV9_TICK_PRIVILEGED) - #if defined(__sun) && defined(__SVR4) - return gethrtime(); - #else -@@ -52,6 +83,24 @@ - else - return _sparcv9_rdtick(); - } -+ -+size_t OPENSSL_instrument_bus(unsigned int *out,size_t cnt) -+{ -+ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == -+ SPARCV9_BLK) -+ return _sparcv9_vis1_instrument_bus(out,cnt); -+ else -+ return 0; -+} -+ -+size_t OPENSSL_instrument_bus2(unsigned int *out,size_t cnt,size_t max) -+{ -+ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == -+ SPARCV9_BLK) -+ return _sparcv9_vis1_instrument_bus2(out,cnt,max); -+ else -+ return 0; -+} - #endif - - #if defined(_BOOT) -@@ -61,7 +110,7 @@ - */ - void OPENSSL_cpuid_setup(void) - { -- OPENSSL_sparcv9cap_P = SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_VIS1; - } - - #elif 0 && defined(__sun) && defined(__SVR4) -@@ -90,11 +139,11 @@ - if (!strcmp(name, "SUNW,UltraSPARC") || - /* covers II,III,IV */ - !strncmp(name, "SUNW,UltraSPARC-I", 17)) { -- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU | SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU | SPARCV9_VIS1; - - /* %tick is privileged only on UltraSPARC-I/II, but not IIe */ - if (name[14] != '\0' && name[17] != '\0' && name[18] != '\0') -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - - return DI_WALK_TERMINATE; - } -@@ -100,7 +149,7 @@ - } - /* This is expected to catch remaining UltraSPARCs, such as T1 */ - else if (!strncmp(name, "SUNW,UltraSPARC", 15)) { -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - - return DI_WALK_TERMINATE; - } -@@ -119,7 +168,7 @@ - trigger = 1; - - if ((e = getenv("OPENSSL_sparcv9cap"))) { -- OPENSSL_sparcv9cap_P = strtoul(e, NULL, 0); -+ OPENSSL_sparcv9cap_P[0] = strtoul(e, NULL, 0); - return; - } - -@@ -126,15 +175,15 @@ - if (sysinfo(SI_MACHINE, si, sizeof(si)) > 0) { - if (strcmp(si, "sun4v")) - /* FPU is preferred for all CPUs, but US-T1/2 */ -- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU; - } - - if (sysinfo(SI_ISALIST, si, sizeof(si)) > 0) { - if (strstr(si, "+vis")) -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; - if (strstr(si, "+vis2")) { -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - return; - } - } -@@ -204,12 +253,14 @@ - trigger = 1; - - if ((e = getenv("OPENSSL_sparcv9cap"))) { -- OPENSSL_sparcv9cap_P = strtoul(e, NULL, 0); -+ OPENSSL_sparcv9cap_P[0] = strtoul(e, NULL, 0); -+ if ((e = strchr(e, ':'))) -+ OPENSSL_sparcv9cap_P[1] = strtoul(e + 1, NULL, 0); - return; - } - - /* Initial value, fits UltraSPARC-I&II... */ -- OPENSSL_sparcv9cap_P = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; - - sigfillset(&all_masked); - sigdelset(&all_masked, SIGILL); -@@ -232,18 +283,18 @@ - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_rdtick(); -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - } - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_vis1_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; - /* detect UltraSPARC-Tx, see sparccpud.S for details... */ - if (_sparcv9_vis1_instrument() >= 12) -- OPENSSL_sparcv9cap_P &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); -+ OPENSSL_sparcv9cap_P[0] &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); - else { - _sparcv9_vis2_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; - } - } - -@@ -249,13 +300,50 @@ - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_fmadd_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_FMADD; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; - } - -+ /* -+ * VIS3 flag is tested independently from VIS1, unlike VIS2 that is, -+ * because VIS3 defines even integer instructions. -+ */ -+ if (sigsetjmp(common_jmp,1) == 0) { -+ _sparcv9_vis3_probe(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; -+ } -+ -+ if (sigsetjmp(common_jmp,1) == 0) { -+ (void)_sparcv9_random(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_RANDOM; -+ } -+ -+ /* -+ * In wait for better solution _sparcv9_rdcfr is masked by -+ * VIS3 flag, because it goes to uninterruptable endless -+ * loop on UltraSPARC II running Solaris. Things might be -+ * different on Linux... -+ */ -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && -+ sigsetjmp(common_jmp, 1) == 0) { -+ OPENSSL_sparcv9cap_P[1] = (unsigned int)_sparcv9_rdcfr(); -+ } -+ - sigaction(SIGBUS, &bus_oact, NULL); - sigaction(SIGILL, &ill_oact, NULL); - - sigprocmask(SIG_SETMASK, &oset, NULL); -+ -+ if (sizeof(size_t) == 8) -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; -+#ifdef __linux -+ else -+ { -+ int ret = syscall(340); -+ -+ if (ret >= 0 && ret & 1) -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; -+ } -+#endif - } - - #endif -Index: crypto/md5/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/md5/Makefile openssl-1.0.1e/crypto/md5/Makefile ---- openssl-1.0.1e/crypto/md5/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/md5/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -52,6 +52,9 @@ - $(CC) $(CFLAGS) -E asm/md5-ia64.S | \ - $(PERL) -ne 's/;\s+/;\n/g; print;' > $@ - -+md5-sparcv9.S: asm/md5-sparcv9.pl -+ $(PERL) asm/md5-sparcv9.pl $@ $(CFLAGS) -+ - files: - $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO - -Index: crypto/md5/md5_locl.h -=================================================================== -diff -ru openssl-1.0.1e/crypto/md5/md5_locl.h openssl-1.0.1e/crypto/md5/md5_locl.h ---- openssl-1.0.1e/crypto/md5/md5_locl.h 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/md5/md5_locl.h 2011-07-27 10:48:17.817470000 -0700 -@@ -71,6 +71,8 @@ - # define md5_block_data_order md5_block_asm_data_order - # elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64) - # define md5_block_data_order md5_block_asm_data_order -+# elif defined(__sparc) || defined(__sparc__) -+# define md5_block_data_order md5_block_asm_data_order - # endif - #endif - -Index: crypto/sha/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/Makefile openssl-1.0.1e/crypto/sha/Makefile ---- openssl-1.0.1e/crypto/sha/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -68,9 +68,9 @@ - sha1-x86_64.s: asm/sha1-x86_64.pl; $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@ - sha256-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ - sha512-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ --sha1-sparcv9.s: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) --sha256-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) --sha512-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) -+sha1-sparcv9.S: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) -+sha256-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) -+sha512-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) - - sha1-ppc.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $(PERLASM_SCHEME) $@ - sha256-ppc.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@ -Index: crypto/sha/asm/sha1-sparcv9.pl -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl ---- openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 -@@ -5,6 +5,8 @@ - # project. The module is, however, dual licensed under OpenSSL and - # CRYPTOGAMS licenses depending on where you obtain it. For further - # details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . - # ==================================================================== - - # Performance improvement is not really impressive on pre-T1 CPU: +8% -@@ -18,6 +20,11 @@ - # ensure scalability on UltraSPARC T1, or rather to avoid decay when - # amount of active threads exceeds the number of physical cores. - -+# SPARC T4 SHA1 hardware achieves 3.72 cycles per byte, which is 3.1x -+# faster than software. Multi-process benchmark saturates at 11x -+# single-process result on 8-core processor, or ~9GBps per 2.85GHz -+# socket. -+ - $bits=32; - for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } - if ($bits==64) { $bias=2047; $frame=192; } -@@ -183,11 +190,93 @@ - .register %g3,#scratch - ___ - $code.=<<___; -+#include "sparc_arch.h" -+ - .section ".text",#alloc,#execinstr - -+#ifdef __PIC__ -+SPARC_PIC_THUNK(%g1) -+#endif -+ - .align 32 - .globl sha1_block_data_order - sha1_block_data_order: -+ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) -+ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] -+ -+ andcc %g1, CFR_SHA1, %g0 -+ be .Lsoftware -+ nop -+ -+ ld [%o0 + 0x00], %f0 ! load context -+ ld [%o0 + 0x04], %f1 -+ ld [%o0 + 0x08], %f2 -+ andcc %o1, 0x7, %g0 -+ ld [%o0 + 0x0c], %f3 -+ bne,pn %icc, .Lhwunaligned -+ ld [%o0 + 0x10], %f4 -+ -+.Lhw_loop: -+ ldd [%o1 + 0x00], %f8 -+ ldd [%o1 + 0x08], %f10 -+ ldd [%o1 + 0x10], %f12 -+ ldd [%o1 + 0x18], %f14 -+ ldd [%o1 + 0x20], %f16 -+ ldd [%o1 + 0x28], %f18 -+ ldd [%o1 + 0x30], %f20 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x38], %f22 -+ add %o1, 0x40, %o1 -+ -+ .word 0x81b02820 ! SHA1 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhw_loop -+ nop -+ -+.Lhwfinish: -+ st %f0, [%o0 + 0x00] ! store context -+ st %f1, [%o0 + 0x04] -+ st %f2, [%o0 + 0x08] -+ st %f3, [%o0 + 0x0c] -+ retl -+ st %f4, [%o0 + 0x10] -+ -+.align 8 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f10 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f12 -+ ldd [%o1 + 0x10], %f14 -+ ldd [%o1 + 0x18], %f16 -+ ldd [%o1 + 0x20], %f18 -+ ldd [%o1 + 0x28], %f20 -+ ldd [%o1 + 0x30], %f22 -+ ldd [%o1 + 0x38], %f24 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x40], %f26 -+ add %o1, 0x40, %o1 -+ -+ faligndata %f10, %f12, %f8 -+ faligndata %f12, %f14, %f10 -+ faligndata %f14, %f16, %f12 -+ faligndata %f16, %f18, %f14 -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ -+ .word 0x81b02820 ! SHA1 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f26, %f26, %f10 ! %f10=%f26 -+ -+ ba .Lhwfinish -+ nop -+ -+.align 16 -+.Lsoftware: - save %sp,-$frame,%sp - sllx $len,6,$len - add $inp,$len,$len -@@ -279,6 +368,62 @@ - .align 4 - ___ - --$code =~ s/\`([^\`]*)\`/eval $1/gem; --print $code; -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my $ref,$opf; -+my %visopf = ( "faligndata" => 0x048, -+ "for" => 0x07c ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+sub unalignaddr { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my $ref="$mnemonic\t$rs1,$rs2,$rd"; -+ -+ foreach ($rs1,$rs2,$rd) { -+ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } -+ else { return $ref; } -+ } -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00300|$rd<<25|$rs1<<14|$rs2, -+ $ref; -+} -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/ge; -+ -+ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ -+ &unvis($1,$2,$3,$4) -+ /ge; -+ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ -+ &unalignaddr($1,$2,$3,$4) -+ /ge; -+ -+ print $_,"\n"; -+} -+ - close STDOUT; - -Index: crypto/sha/asm/sha512-sparcv9.pl -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl ---- openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 -@@ -5,6 +5,8 @@ - # project. The module is, however, dual licensed under OpenSSL and - # CRYPTOGAMS licenses depending on where you obtain it. For further - # details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . - # ==================================================================== - - # SHA256 performance improvement over compiler generated code varies -@@ -41,6 +43,12 @@ - # loads are always slower than one 64-bit load. Once again this - # is unlike pre-T1 UltraSPARC, where, if scheduled appropriately, - # 2x32-bit loads can be as fast as 1x64-bit ones. -+# -+# SPARC T4 SHA256/512 hardware achieves 3.17/2.01 cycles per byte, -+# which is 9.3x/11.1x faster than software. Multi-process benchmark -+# saturates at 11.5x single-process result on 8-core processor, or -+# ~11/16GBps per 2.85GHz socket. -+ - - $bits=32; - for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } -@@ -386,6 +394,8 @@ - .register %g3,#scratch - ___ - $code.=<<___; -+#include "sparc_arch.h" -+ - .section ".text",#alloc,#execinstr - - .align 64 -@@ -457,8 +467,196 @@ - } - $code.=<<___; - .size K${label},.-K${label} -+ -+#ifdef __PIC__ -+SPARC_PIC_THUNK(%g1) -+#endif -+ - .globl sha${label}_block_data_order -+.align 32 - sha${label}_block_data_order: -+ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) -+ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] -+ -+ andcc %g1, CFR_SHA${label}, %g0 -+ be .Lsoftware -+ nop -+___ -+$code.=<<___ if ($SZ==8); # SHA512 -+ ldd [%o0 + 0x00], %f0 ! load context -+ ldd [%o0 + 0x08], %f2 -+ ldd [%o0 + 0x10], %f4 -+ ldd [%o0 + 0x18], %f6 -+ ldd [%o0 + 0x20], %f8 -+ ldd [%o0 + 0x28], %f10 -+ andcc %o1, 0x7, %g0 -+ ldd [%o0 + 0x30], %f12 -+ bne,pn %icc, .Lhwunaligned -+ ldd [%o0 + 0x38], %f14 -+ -+.Lhwaligned_loop: -+ ldd [%o1 + 0x00], %f16 -+ ldd [%o1 + 0x08], %f18 -+ ldd [%o1 + 0x10], %f20 -+ ldd [%o1 + 0x18], %f22 -+ ldd [%o1 + 0x20], %f24 -+ ldd [%o1 + 0x28], %f26 -+ ldd [%o1 + 0x30], %f28 -+ ldd [%o1 + 0x38], %f30 -+ ldd [%o1 + 0x40], %f32 -+ ldd [%o1 + 0x48], %f34 -+ ldd [%o1 + 0x50], %f36 -+ ldd [%o1 + 0x58], %f38 -+ ldd [%o1 + 0x60], %f40 -+ ldd [%o1 + 0x68], %f42 -+ ldd [%o1 + 0x70], %f44 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x78], %f46 -+ add %o1, 0x80, %o1 -+ -+ .word 0x81b02860 ! SHA512 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwaligned_loop -+ nop -+ -+.Lhwfinish: -+ std %f0, [%o0 + 0x00] ! store context -+ std %f2, [%o0 + 0x08] -+ std %f4, [%o0 + 0x10] -+ std %f6, [%o0 + 0x18] -+ std %f8, [%o0 + 0x20] -+ std %f10, [%o0 + 0x28] -+ std %f12, [%o0 + 0x30] -+ retl -+ std %f14, [%o0 + 0x38] -+ -+.align 16 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f18 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f20 -+ ldd [%o1 + 0x10], %f22 -+ ldd [%o1 + 0x18], %f24 -+ ldd [%o1 + 0x20], %f26 -+ ldd [%o1 + 0x28], %f28 -+ ldd [%o1 + 0x30], %f30 -+ ldd [%o1 + 0x38], %f32 -+ ldd [%o1 + 0x40], %f34 -+ ldd [%o1 + 0x48], %f36 -+ ldd [%o1 + 0x50], %f38 -+ ldd [%o1 + 0x58], %f40 -+ ldd [%o1 + 0x60], %f42 -+ ldd [%o1 + 0x68], %f44 -+ ldd [%o1 + 0x70], %f46 -+ ldd [%o1 + 0x78], %f48 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x80], %f50 -+ add %o1, 0x80, %o1 -+ -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ faligndata %f26, %f28, %f24 -+ faligndata %f28, %f30, %f26 -+ faligndata %f30, %f32, %f28 -+ faligndata %f32, %f34, %f30 -+ faligndata %f34, %f36, %f32 -+ faligndata %f36, %f38, %f34 -+ faligndata %f38, %f40, %f36 -+ faligndata %f40, %f42, %f38 -+ faligndata %f42, %f44, %f40 -+ faligndata %f44, %f46, %f42 -+ faligndata %f46, %f48, %f44 -+ faligndata %f48, %f50, %f46 -+ -+ .word 0x81b02860 ! SHA512 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f50, %f50, %f18 ! %f18=%f50 -+ -+ ba .Lhwfinish -+ nop -+___ -+$code.=<<___ if ($SZ==4); # SHA256 -+ ld [%o0 + 0x00], %f0 -+ ld [%o0 + 0x04], %f1 -+ ld [%o0 + 0x08], %f2 -+ ld [%o0 + 0x0c], %f3 -+ ld [%o0 + 0x10], %f4 -+ ld [%o0 + 0x14], %f5 -+ andcc %o1, 0x7, %g0 -+ ld [%o0 + 0x18], %f6 -+ bne,pn %icc, .Lhwunaligned -+ ld [%o0 + 0x1c], %f7 -+ -+.Lhwloop: -+ ldd [%o1 + 0x00], %f8 -+ ldd [%o1 + 0x08], %f10 -+ ldd [%o1 + 0x10], %f12 -+ ldd [%o1 + 0x18], %f14 -+ ldd [%o1 + 0x20], %f16 -+ ldd [%o1 + 0x28], %f18 -+ ldd [%o1 + 0x30], %f20 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x38], %f22 -+ add %o1, 0x40, %o1 -+ -+ .word 0x81b02840 ! SHA256 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwloop -+ nop -+ -+.Lhwfinish: -+ st %f0, [%o0 + 0x00] ! store context -+ st %f1, [%o0 + 0x04] -+ st %f2, [%o0 + 0x08] -+ st %f3, [%o0 + 0x0c] -+ st %f4, [%o0 + 0x10] -+ st %f5, [%o0 + 0x14] -+ st %f6, [%o0 + 0x18] -+ retl -+ st %f7, [%o0 + 0x1c] -+ -+.align 8 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f10 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f12 -+ ldd [%o1 + 0x10], %f14 -+ ldd [%o1 + 0x18], %f16 -+ ldd [%o1 + 0x20], %f18 -+ ldd [%o1 + 0x28], %f20 -+ ldd [%o1 + 0x30], %f22 -+ ldd [%o1 + 0x38], %f24 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x40], %f26 -+ add %o1, 0x40, %o1 -+ -+ faligndata %f10, %f12, %f8 -+ faligndata %f12, %f14, %f10 -+ faligndata %f14, %f16, %f12 -+ faligndata %f16, %f18, %f14 -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ -+ .word 0x81b02840 ! SHA256 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f26, %f26, %f10 ! %f10=%f26 -+ -+ ba .Lhwfinish -+ nop -+___ -+$code.=<<___; -+.align 16 -+.Lsoftware: - save %sp,`-$frame-$locals`,%sp - and $inp,`$align-1`,$tmp31 - sllx $len,`log(16*$SZ)/log(2)`,$len -@@ -589,6 +787,62 @@ - .align 4 - ___ - --$code =~ s/\`([^\`]*)\`/eval $1/gem; --print $code; -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my $ref,$opf; -+my %visopf = ( "faligndata" => 0x048, -+ "for" => 0x07c ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+sub unalignaddr { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my $ref="$mnemonic\t$rs1,$rs2,$rd"; -+ -+ foreach ($rs1,$rs2,$rd) { -+ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } -+ else { return $ref; } -+ } -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00300|$rd<<25|$rs1<<14|$rs2, -+ $ref; -+} -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/ge; -+ -+ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ -+ &unvis($1,$2,$3,$4) -+ /ge; -+ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ -+ &unalignaddr($1,$2,$3,$4) -+ /ge; -+ -+ print $_,"\n"; -+} -+ - close STDOUT; -Index: crypto/des/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/des/Makefile.orig openssl-1.0.1e/crypto/des/Makefile ---- a/crypto/des/Makefile -+++ b/crypto/des/Makefile -@@ -61,6 +61,8 @@ des: des.o cbc3_enc.o lib - - des_enc-sparc.S: asm/des_enc.m4 - m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S -+dest4-sparcv9.s: asm/dest4-sparcv9.pl -+ $(PERL) asm/dest4-sparcv9.pl $(CFLAGS) > $@ - - des-586.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl - $(PERL) asm/des-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@ -Index: crypto/evp/e_des.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/evp/e_des.c.orig openssl-1.0.1e/crypto/evp/e_des.c ---- a/crypto/evp/e_des.c -+++ b/crypto/evp/e_des.c -@@ -65,6 +65,30 @@ - # include - # include - -+typedef struct { -+ union { double align; DES_key_schedule ks; } ks; -+ union { -+ void (*cbc)(const void *,void *,size_t,const void *,void *); -+ } stream; -+} EVP_DES_KEY; -+ -+#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+/* ---------^^^ this is not a typo, just a way to detect that -+ * assembler support was in general requested... -+ */ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) -+ -+void des_t4_key_expand(const void *key, DES_key_schedule *ks); -+void des_t4_cbc_encrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+void des_t4_cbc_decrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+#endif -+ - static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc); - static int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); -@@ -102,6 +126,12 @@ static int des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl) - { -+ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; -+ -+ if (dat->stream.cbc) { -+ (*dat->stream.cbc)(in,out,inl,&dat->ks.ks,ctx->iv); -+ return 1; -+ } - while (inl >= EVP_MAXCHUNK) { - DES_ncbc_encrypt(in, out, (long)EVP_MAXCHUNK, ctx->cipher_data, - (DES_cblock *)ctx->iv, ctx->encrypt); -@@ -179,16 +209,16 @@ - return 1; - } - --BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64, -+BLOCK_CIPHER_defs(des, EVP_DES_KEY, NID_des, 8, 8, 8, 64, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) - - --BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 1, -+BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 1, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) - --BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 8, -+BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 8, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) - -@@ -196,8 +226,23 @@ static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(key,&dat->ks.ks); -+ dat->stream.cbc = enc ? des_t4_cbc_encrypt : -+ des_t4_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(deskey, ctx->cipher_data) != 0) -+ if (DES_set_key_checked(deskey, dat->ks.ks) != 0) - return 0; - # else - DES_set_key_unchecked(deskey, ctx->cipher_data); -Index: crypto/evp/e_des3.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/evp/e_des3.c.orig openssl-1.0.1e/crypto/evp/e_des3.c ---- a/crypto/evp/e_des3.c -+++ b/crypto/evp/e_des3.c -@@ -65,6 +65,32 @@ - # include - # include - -+typedef struct { -+ union { double align; DES_key_schedule ks[3]; } ks; -+ union { -+ void (*cbc)(const void *,void *,size_t,const void *,void *); -+ } stream; -+} DES_EDE_KEY; -+#define ks1 ks.ks[0] -+#define ks2 ks.ks[1] -+#define ks3 ks.ks[2] -+ -+#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+/* ---------^^^ this is not a typo, just a way to detect that -+ * assembler support was in general requested... */ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) -+ -+void des_t4_key_expand(const void *key, DES_key_schedule *ks); -+void des_t4_ede3_cbc_encrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+void des_t4_ede3_cbc_decrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+#endif -+ - # ifndef OPENSSL_FIPS - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -@@ -75,12 +100,6 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - - static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); - --typedef struct { -- DES_key_schedule ks1; /* key schedule */ -- DES_key_schedule ks2; /* key schedule (for ede) */ -- DES_key_schedule ks3; /* key schedule (for ede3) */ --} DES_EDE_KEY; -- - # define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data) - - /* -@@ -123,6 +117,7 @@ static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl) - { -+ DES_EDE_KEY *dat = data(ctx); - # ifdef KSSL_DEBUG - { - int i; -@@ -134,11 +155,15 @@ - fprintf(stderr, "\n"); - } - # endif /* KSSL_DEBUG */ -+ if (dat->stream.cbc) { -+ (*dat->stream.cbc)(in,out,inl,&dat->ks,ctx->iv); -+ return 1; -+ } -+ - while (inl >= EVP_MAXCHUNK) { - DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, -- &data(ctx)->ks1, &data(ctx)->ks2, -- &data(ctx)->ks3, (DES_cblock *)ctx->iv, -- ctx->encrypt); -+ &dat->ks1, &dat->ks2, &dat->ks3, -+ (DES_cblock *)ctx->iv, ctx->encrypt); - inl -= EVP_MAXCHUNK; - in += EVP_MAXCHUNK; - out += EVP_MAXCHUNK; -@@ -145,9 +170,8 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - if (inl) - DES_ede3_cbc_encrypt(in, out, (long)inl, -- &data(ctx)->ks1, &data(ctx)->ks2, -- &data(ctx)->ks3, (DES_cblock *)ctx->iv, -- ctx->encrypt); -+ &dat->ks1, &dat->ks2, &dat->ks3, -+ (DES_cblock *)ctx->iv, ctx->encrypt); - return 1; - } - -@@ -215,39 +239,58 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - - BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede_init_key, NULL, NULL, NULL, -+ des3_ctrl) - # define des_ede3_cfb64_cipher des_ede_cfb64_cipher - # define des_ede3_ofb_cipher des_ede_ofb_cipher - # define des_ede3_cbc_cipher des_ede_cbc_cipher - # define des_ede3_ecb_cipher des_ede_ecb_cipher - BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) -- ! !DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ !! DES_set_key_checked(&deskey[1],&dat->ks2)) - return 0; - # else -- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); - # endif -- memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); -+ memcpy(&dat->ks3,&dat->ks1, sizeof(dat->ks1)); - return 1; - } - -@@ -255,6 +298,8 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ - # ifdef KSSL_DEBUG - { - int i; -@@ -272,15 +317,30 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - } - # endif /* KSSL_DEBUG */ - -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ des_t4_key_expand(&deskey[2],&dat->ks3); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) -- || DES_set_key_checked(&deskey[1], &data(ctx)->ks2) -- || DES_set_key_checked(&deskey[2], &data(ctx)->ks3)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ || DES_set_key_checked(&deskey[1],&dat->ks2) -+ || DES_set_key_checked(&deskey[2],&dat->ks3)) - return 0; - # else -- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); -- DES_set_key_unchecked(&deskey[2], &data(ctx)->ks3); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); -+ DES_set_key_unchecked(&deskey[2],&dat->ks3); - # endif - return 1; - } -Index: openssl/crypto/bn/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/bn/Makefile openssl-1.0.1e/crypto/bn/Makefile.new ---- openssl-1.0.1e/crypto/bn/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/bn/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -77,6 +77,12 @@ - $(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@ - sparcv9-mont.s: asm/sparcv9-mont.pl - $(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@ -+vis3-mont.s: asm/vis3-mont.pl -+ $(PERL) asm/vis3-mont.pl $(CFLAGS) > $@ -+sparct4-mont.S: asm/sparct4-mont.pl -+ $(PERL) asm/sparct4-mont.pl $(CFLAGS) > $@ -+sparcv9-gf2m.S: asm/sparcv9-gf2m.pl -+ $(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) > $@ - - bn-mips3.o: asm/mips3.s - @if [ "$(CC)" = "gcc" ]; then \ -Index: openssl/crypto/bn/bn_exp.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/bn/bn_exp.c openssl-1.0.1e/crypto/bn/bn_exp.c.new ---- bn_exp.c 2011/10/29 19:25:13 1.38 -+++ bn_exp.c 2012/11/17 10:34:11 1.39 -@@ -122,8 +122,15 @@ - # ifndef alloca - # define alloca(s) __builtin_alloca((s)) - # endif -+#else -+#include - #endif - -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+# include "sparc_arch.h" -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+#endif -+ - /* maximum precomputation table size for *variable* sliding windows */ - #define TABLE_SIZE 32 - -@@ -464,8 +471,16 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - wstart = bits - 1; /* The top bit of the window */ - wend = 0; /* The bottom bit of the window */ - -+#if 1 /* by Shay Gueron's suggestion */ -+ j = mont->N.top; /* borrow j */ -+ if (bn_wexpand(r,j) == NULL) goto err; -+ r->d[0] = (0-m->d[0])&BN_MASK2; /* 2^(top*BN_BITS2) - m */ -+ for(i=1;id[i] = (~m->d[i])&BN_MASK2; -+ r->top = j; -+#else - if (!BN_to_montgomery(r, BN_value_one(), mont, ctx)) - goto err; -+#endif - for (;;) { - if (BN_is_bit_set(p, wstart) == 0) { - if (!start) { -@@ -515,6 +530,17 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - if (wstart < 0) - break; - } -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+ if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3|SPARCV9_PREFER_FPU)) { -+ j = mont->N.top; /* borrow j */ -+ val[0]->d[0] = 1; /* borrow val[0] */ -+ for (i=1;id[i] = 0; -+ val[0]->top = j; -+ if (!BN_mod_mul_montgomery(rr, r, val[0], mont, ctx)) -+ goto err; -+ } else -+#endif - if (!BN_from_montgomery(rr, r, mont, ctx)) - goto err; - ret = 1; -@@ -526,6 +552,26 @@ err: - return (ret); - } - -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+static BN_ULONG bn_get_bits(const BIGNUM *a, int bitpos) { -+ BN_ULONG ret = 0; -+ int wordpos; -+ -+ wordpos = bitpos / BN_BITS2; -+ bitpos %= BN_BITS2; -+ if (wordpos>=0 && wordpos < a->top) { -+ ret = a->d[wordpos]&BN_MASK2; -+ if (bitpos) { -+ ret >>= bitpos; -+ if (++wordpos < a->top) -+ ret |= a->d[wordpos]<<(BN_BITS2-bitpos); -+ } -+ } -+ -+ return ret & BN_MASK2; -+} -+#endif -+ - /* - * BN_mod_exp_mont_consttime() stores the precomputed powers in a specific - * layout so that accessing any of these table values shows the same access -@@ -594,6 +640,9 @@ - int powerbufLen = 0; - unsigned char *powerbuf = NULL; - BIGNUM tmp, am; -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ unsigned int t4=0; -+#endif - - bn_check_top(a); - bn_check_top(p); -@@ -628,10 +677,18 @@ - - /* Get the window size to use with size of p. */ - window = BN_window_bits_for_ctime_exponent_size(bits); -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ if (window>=5 && (top&15)==0 && top<=64 && -+ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== -+ (CFR_MONTMUL|CFR_MONTSQR) && (t4=OPENSSL_sparcv9cap_P[0])) -+ window=5; -+ else -+#endif - #if defined(OPENSSL_BN_ASM_MONT5) - if (window == 6 && bits <= 1024) - window = 5; /* ~5% improvement of 2048-bit RSA sign */ - #endif -+ (void) 0; - - /* - * Allocate a buffer large enough to hold all of the pre-computed powers -@@ -670,14 +727,14 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - tmp.flags = am.flags = BN_FLG_STATIC_DATA; - - /* prepare a^0 in Montgomery domain */ --#if 1 -- if (!BN_to_montgomery(&tmp, BN_value_one(), mont, ctx)) -- goto err; --#else -+#if 1 /* by Shay Gueron's suggestion */ - tmp.d[0] = (0 - m->d[0]) & BN_MASK2; /* 2^(top*BN_BITS2) - m */ - for (i = 1; i < top; i++) - tmp.d[i] = (~m->d[i]) & BN_MASK2; - tmp.top = top; -+#else -+ if (!BN_to_montgomery(&tmp,BN_value_one(),mont,ctx)) -+ goto err; - #endif - - /* prepare a^1 in Montgomery domain */ -@@ -689,6 +746,122 @@ - } else if (!BN_to_montgomery(&am, a, mont, ctx)) - goto err; - -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ if (t4) { -+ typedef int (*bn_pwr5_mont_f)(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_8(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_16(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_24(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_32(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ static const bn_pwr5_mont_f pwr5_funcs[4] = { -+ bn_pwr5_mont_t4_8, bn_pwr5_mont_t4_16, -+ bn_pwr5_mont_t4_24, bn_pwr5_mont_t4_32 }; -+ bn_pwr5_mont_f pwr5_worker = pwr5_funcs[top/16-1]; -+ -+ typedef int (*bn_mul_mont_f)(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_8(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_16(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_24(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_32(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ static const bn_mul_mont_f mul_funcs[4] = { -+ bn_mul_mont_t4_8, bn_mul_mont_t4_16, -+ bn_mul_mont_t4_24, bn_mul_mont_t4_32 }; -+ bn_mul_mont_f mul_worker = mul_funcs[top/16-1]; -+ -+ void bn_mul_mont_vis3(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np, -+ const BN_ULONG *n0,int num); -+ void bn_mul_mont_t4(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np, -+ const BN_ULONG *n0,int num); -+ void bn_mul_mont_gather5_t4(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *table,const BN_ULONG *np, -+ const BN_ULONG *n0,int num,int power); -+ void bn_flip_n_scatter5_t4(const BN_ULONG *inp,size_t num, -+ void *table,size_t power); -+ void bn_gather5_t4(BN_ULONG *out,size_t num, -+ void *table,size_t power); -+ void bn_flip_t4(BN_ULONG *dst,BN_ULONG *src,size_t num); -+ -+ BN_ULONG *np=mont->N.d, *n0=mont->n0; -+ int stride = 5*(6-(top/16-1)); /* multiple of 5, but less than 32 */ -+ -+ /* -+ * BN_to_montgomery can contaminate words above .top -+ * [in BN_DEBUG[_DEBUG] build]... -+ */ -+ for (i=am.top; iN.d,top); -+ -+ bits--; -+ for (wvalue=0, i=bits%5; i>=0; i--,bits--) -+ wvalue = (wvalue<<1)+BN_is_bit_set(p,bits); -+ bn_gather5_t4(tmp.d,top,powerbuf,wvalue); -+ -+ /* Scan the exponent one window at a time starting from the most -+ * significant bits. -+ */ -+ while (bits >= 0) { -+ if (bits < stride) -+ stride = bits+1; -+ bits -= stride; -+ wvalue = (bn_get_bits(p,bits+1)); -+ -+ if ((*pwr5_worker)(tmp.d,np,n0,powerbuf,wvalue,stride)) -+ continue; -+ /* retry once and fall back */ -+ if ((*pwr5_worker)(tmp.d,np,n0,powerbuf,wvalue,stride)) -+ continue; -+ -+ bits += stride-5; -+ wvalue >>= stride-5; -+ wvalue &= 31; -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_gather5_t4(tmp.d,tmp.d,powerbuf,np,n0,top,wvalue); -+ } -+ -+ bn_flip_t4(tmp.d,tmp.d,top); -+ top *= 2; -+ /* back to 32-bit domain */ -+ tmp.top=top; -+ bn_correct_top(&tmp); -+ OPENSSL_cleanse(np,top*sizeof(BN_ULONG)); -+ } else -+#endif - #if defined(OPENSSL_BN_ASM_MONT5) - if (window == 5 && top > 1) { - /* -@@ -844,6 +1017,15 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - } - - /* Convert the final result from montgomery to standard format */ -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+ if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3|SPARCV9_PREFER_FPU)) { -+ am.d[0] = 1; /* borrow am */ -+ for (i = 1; i < top; i++) -+ am.d[i] = 0; -+ if (!BN_mod_mul_montgomery(rr,&tmp,&am,mont,ctx)) -+ goto err; -+ } else -+#endif - if (!BN_from_montgomery(rr, &tmp, mont, ctx)) - goto err; - ret = 1; -Index: openssl/apps/speed.c -=================================================================== -diff -ru openssl-1.0.1e/apps/spped.c openssl-1.0.1e/apps/speed.c ---- openssl-1.0.1e/apps/speed.c 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/apps/spped.c 2011-07-27 10:48:17.817470000 -0700 -@@ -1586,8 +1586,7 @@ - print_message(names[D_MD5], c[D_MD5][j], lengths[j]); - Time_F(START); - for (count = 0, run = 1; COND(c[D_MD5][j]); count++) -- EVP_Digest(&(buf[0]), (unsigned long)lengths[j], &(md5[0]), -- NULL, EVP_get_digestbyname("md5"), NULL); -+ MD5(buf, lengths[j], md5); - d = Time_F(STOP); - print_result(D_MD5, j, count, d); - } -@@ -1622,8 +1621,7 @@ - print_message(names[D_SHA1], c[D_SHA1][j], lengths[j]); - Time_F(START); - for (count = 0, run = 1; COND(c[D_SHA1][j]); count++) -- EVP_Digest(buf, (unsigned long)lengths[j], &(sha[0]), NULL, -- EVP_sha1(), NULL); -+ SHA1(buf, lengths[j], sha); - d = Time_F(STOP); - print_result(D_SHA1, j, count, d); - } -Index: openssl/crypto/aes/Makefile -=================================================================== ---- Makefile Thu May 2 13:42:37 2013 -+++ Makefile.orig Thu May 2 13:41:51 2013 -@@ -69,6 +69,9 @@ - aes-sparcv9.s: asm/aes-sparcv9.pl - $(PERL) asm/aes-sparcv9.pl $(CFLAGS) > $@ - -+aest4-sparcv9.s: asm/aest4-sparcv9.pl -+ $(PERL) asm/aest4-sparcv9.pl $(CFLAGS) > $@ -+ - aes-ppc.s: asm/aes-ppc.pl - $(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@ - -Index: openssl/crypto/evp/e_aes.c -=================================================================== ---- e_aes.c Mon Feb 11 07:26:04 2013 -+++ e_aes.c.56 Thu May 2 14:26:35 2013 -@@ -56,12 +58,11 @@ - # include - # include - # include "evp_locl.h" --# ifndef OPENSSL_FIPS - # include "modes_lcl.h" - # include - - typedef struct { -- AES_KEY ks; -+ union { double align; AES_KEY ks; } ks; - block128_f block; - union { - cbc128_f cbc; -@@ -70,7 +69,7 @@ - } EVP_AES_KEY; - - typedef struct { -- AES_KEY ks; /* AES key schedule to use */ -+ union { double align; AES_KEY ks; } ks; /* AES key schedule to use */ - int key_set; /* Set if key initialised */ - int iv_set; /* Set if an iv is set */ - GCM128_CONTEXT gcm; -@@ -83,7 +82,7 @@ - } EVP_AES_GCM_CTX; - - typedef struct { -- AES_KEY ks1, ks2; /* AES key schedules to use */ -+ union { double align; AES_KEY ks; } ks1, ks2; /* AES key schedules to use */ - XTS128_CONTEXT xts; - void (*stream) (const unsigned char *in, - unsigned char *out, size_t length, -@@ -92,7 +91,7 @@ - } EVP_AES_XTS_CTX; - - typedef struct { -- AES_KEY ks; /* AES key schedule to use */ -+ union { double align; AES_KEY ks; } ks; /* AES key schedule to use */ - int key_set; /* Set if key initialised */ - int iv_set; /* Set if an iv is set */ - int tag_set; /* Set if tag is valid */ -@@ -155,7 +154,7 @@ - defined(_M_AMD64) || defined(_M_X64) || \ - defined(__INTEL__) ) - --extern unsigned int OPENSSL_ia32cap_P[2]; -+extern unsigned int OPENSSL_ia32cap_P[]; - - # ifdef VPAES_ASM - # define VPAES_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(41-32))) -@@ -297,7 +296,7 @@ - if (!iv && !key) - return 1; - if (key) { -- aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); -+ aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); - CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f) aesni_encrypt); - gctx->ctr = (ctr128_f) aesni_ctr32_encrypt_blocks; - /* -@@ -336,17 +335,17 @@ - if (key) { - /* key_len is two AES keys */ - if (enc) { -- aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) aesni_encrypt; - xctx->stream = aesni_xts_encrypt; - } else { -- aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) aesni_decrypt; - xctx->stream = aesni_xts_decrypt; - } - - aesni_set_encrypt_key(key + ctx->key_len / 2, -- ctx->key_len * 4, &xctx->ks2); -+ ctx->key_len * 4, &xctx->ks2.ks); - xctx->xts.block2 = (block128_f) aesni_encrypt; - - xctx->xts.key1 = &xctx->ks1; -@@ -371,7 +370,7 @@ - if (!iv && !key) - return 1; - if (key) { -- aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); -+ aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); - CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, - &cctx->ks, (block128_f) aesni_encrypt); - cctx->str = enc ? (ccm128_f) aesni_ccm64_encrypt_blocks : -@@ -432,6 +431,364 @@ - const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ - { return AESNI_CAPABLE?&aesni_##keylen##_##mode:&aes_##keylen##_##mode; } - -+#elif defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_AES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_AES) -+ -+void aes_t4_set_encrypt_key (const unsigned char *key, int bits, -+ AES_KEY *ks); -+void aes_t4_set_decrypt_key (const unsigned char *key, int bits, -+ AES_KEY *ks); -+void aes_t4_encrypt (const unsigned char *in, unsigned char *out, -+ const AES_KEY *key); -+void aes_t4_decrypt (const unsigned char *in, unsigned char *out, -+ const AES_KEY *key); -+/* -+ * Key-length specific subroutines were chosen for following reason. -+ * Each SPARC T4 core can execute up to 8 threads which share core's -+ * resources. Loading as much key material to registers allows to -+ * minimize references to shared memory interface, as well as amount -+ * of instructions in inner loops [much needed on T4]. But then having -+ * non-key-length specific routines would require conditional branches -+ * either in inner loops or on subroutines' entries. Former is hardly -+ * acceptable, while latter means code size increase to size occupied -+ * by multiple key-length specfic subroutines, so why fight? -+ */ -+void aes128_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes128_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes192_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes192_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes256_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes256_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes128_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, -+ size_t blocks, const AES_KEY *key, -+ unsigned char *ivec); -+void aes192_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, -+ size_t blocks, const AES_KEY *key, -+ unsigned char *ivec); -+void aes256_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, -+ size_t blocks, const AES_KEY *key, -+ unsigned char *ivec); -+ -+static int aes_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -+ const unsigned char *iv, int enc) -+{ -+ int ret, mode, bits; -+ EVP_AES_KEY *dat = (EVP_AES_KEY *)ctx->cipher_data; -+ -+ mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ bits = ctx->key_len*8; -+ if ((mode == EVP_CIPH_ECB_MODE || mode == EVP_CIPH_CBC_MODE) && !enc) { -+ ret = 0; -+ aes_t4_set_decrypt_key(key, bits, ctx->cipher_data); -+ dat->block = (block128_f)aes_t4_decrypt; -+ switch (bits) { -+ case 128: -+ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? -+ (cbc128_f)aes128_t4_cbc_decrypt : -+ NULL; -+ break; -+ case 192: -+ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? -+ (cbc128_f)aes192_t4_cbc_decrypt : -+ NULL; -+ break; -+ case 256: -+ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? -+ (cbc128_f)aes256_t4_cbc_decrypt : -+ NULL; -+ break; -+ default: -+ ret = -1; -+ } -+ } else { -+ ret = 0; -+ aes_t4_set_encrypt_key(key, bits, ctx->cipher_data); -+ dat->block = (block128_f)aes_t4_encrypt; -+ switch (bits) { -+ case 128: -+ if (mode==EVP_CIPH_CBC_MODE) -+ dat->stream.cbc = (cbc128_f)aes128_t4_cbc_encrypt; -+ else if (mode==EVP_CIPH_CTR_MODE) -+ dat->stream.ctr = (ctr128_f)aes128_t4_ctr32_encrypt; -+ else -+ dat->stream.cbc = NULL; -+ break; -+ case 192: -+ if (mode==EVP_CIPH_CBC_MODE) -+ dat->stream.cbc = (cbc128_f)aes192_t4_cbc_encrypt; -+ else if (mode==EVP_CIPH_CTR_MODE) -+ dat->stream.ctr = (ctr128_f)aes192_t4_ctr32_encrypt; -+ else -+ dat->stream.cbc = NULL; -+ break; -+ case 256: -+ if (mode==EVP_CIPH_CBC_MODE) -+ dat->stream.cbc = (cbc128_f)aes256_t4_cbc_encrypt; -+ else if (mode==EVP_CIPH_CTR_MODE) -+ dat->stream.ctr = (ctr128_f)aes256_t4_ctr32_encrypt; -+ else -+ dat->stream.cbc = NULL; -+ break; -+ default: -+ ret = -1; -+ } -+ } -+ -+ if (ret < 0) { -+ EVPerr(EVP_F_AES_T4_INIT_KEY,EVP_R_AES_KEY_SETUP_FAILED); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+#define aes_t4_cbc_cipher aes_cbc_cipher -+static int aes_t4_cbc_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, -+ const unsigned char *in, size_t len); -+ -+#define aes_t4_ecb_cipher aes_ecb_cipher -+static int aes_t4_ecb_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, -+ const unsigned char *in, size_t len); -+ -+#define aes_t4_ofb_cipher aes_ofb_cipher -+static int aes_t4_ofb_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, -+ const unsigned char *in,size_t len); -+ -+#define aes_t4_cfb_cipher aes_cfb_cipher -+static int aes_t4_cfb_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, -+ const unsigned char *in,size_t len); -+ -+#define aes_t4_cfb8_cipher aes_cfb8_cipher -+static int aes_t4_cfb8_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, -+ const unsigned char *in,size_t len); -+ -+#define aes_t4_cfb1_cipher aes_cfb1_cipher -+static int aes_t4_cfb1_cipher(EVP_CIPHER_CTX *ctx,unsigned char *out, -+ const unsigned char *in,size_t len); -+ -+#define aes_t4_ctr_cipher aes_ctr_cipher -+static int aes_t4_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, -+ const unsigned char *in, size_t len); -+ -+static int aes_t4_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -+ const unsigned char *iv, int enc) -+{ -+ EVP_AES_GCM_CTX *gctx = ctx->cipher_data; -+ if (!iv && !key) -+ return 1; -+ if (key) { -+ int bits = ctx->key_len * 8; -+ aes_t4_set_encrypt_key(key, bits, &gctx->ks.ks); -+ CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, -+ (block128_f)aes_t4_encrypt); -+ switch (bits) { -+ case 128: -+ gctx->ctr = (ctr128_f)aes128_t4_ctr32_encrypt; -+ break; -+ case 192: -+ gctx->ctr = (ctr128_f)aes192_t4_ctr32_encrypt; -+ break; -+ case 256: -+ gctx->ctr = (ctr128_f)aes256_t4_ctr32_encrypt; -+ break; -+ default: -+ return 0; -+ } -+ /* If we have an iv can set it directly, otherwise use -+ * saved IV. -+ */ -+ if (iv == NULL && gctx->iv_set) -+ iv = gctx->iv; -+ if (iv) { -+ CRYPTO_gcm128_setiv(&gctx->gcm, iv, gctx->ivlen); -+ gctx->iv_set = 1; -+ } -+ gctx->key_set = 1; -+ } else { -+ /* If key set use IV, otherwise copy */ -+ if (gctx->key_set) -+ CRYPTO_gcm128_setiv(&gctx->gcm, iv, gctx->ivlen); -+ else -+ memcpy(gctx->iv, iv, gctx->ivlen); -+ gctx->iv_set = 1; -+ gctx->iv_gen = 0; -+ } -+ return 1; -+} -+ -+#define aes_t4_gcm_cipher aes_gcm_cipher -+static int aes_t4_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, -+ const unsigned char *in, size_t len); -+ -+static int aes_t4_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -+ const unsigned char *iv, int enc) -+{ -+ EVP_AES_XTS_CTX *xctx = ctx->cipher_data; -+ if (!iv && !key) -+ return 1; -+ -+ if (key) { -+ int bits = ctx->key_len * 4; -+ /* key_len is two AES keys */ -+ if (enc) { -+ aes_t4_set_encrypt_key(key, bits, &xctx->ks1.ks); -+ xctx->xts.block1 = (block128_f)aes_t4_encrypt; -+#if 0 /* not yet */ -+ switch (bits) { -+ case 128: -+ xctx->stream = aes128_t4_xts_encrypt; -+ break; -+ case 192: -+ xctx->stream = aes192_t4_xts_encrypt; -+ break; -+ case 256: -+ xctx->stream = aes256_t4_xts_encrypt; -+ break; -+ default: -+ return 0; -+ } -+#endif -+ } else { -+ aes_t4_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); -+ xctx->xts.block1 = (block128_f)aes_t4_decrypt; -+#if 0 /* not yet */ -+ switch (bits) { -+ case 128: -+ xctx->stream = aes128_t4_xts_decrypt; -+ break; -+ case 192: -+ xctx->stream = aes192_t4_xts_decrypt; -+ break; -+ case 256: -+ xctx->stream = aes256_t4_xts_decrypt; -+ break; -+ default: -+ return 0; -+ } -+#endif -+ } -+ -+ aes_t4_set_encrypt_key(key + ctx->key_len/2, -+ ctx->key_len * 4, &xctx->ks2.ks); -+ xctx->xts.block2 = (block128_f)aes_t4_encrypt; -+ -+ xctx->xts.key1 = &xctx->ks1; -+ } -+ -+ if (iv) { -+ xctx->xts.key2 = &xctx->ks2; -+ memcpy(ctx->iv, iv, 16); -+ } -+ -+ return 1; -+} -+ -+#define aes_t4_xts_cipher aes_xts_cipher -+static int aes_t4_xts_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, -+ const unsigned char *in, size_t len); -+ -+static int aes_t4_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -+ const unsigned char *iv, int enc) -+{ -+ EVP_AES_CCM_CTX *cctx = ctx->cipher_data; -+ if (!iv && !key) -+ return 1; -+ if (key) { -+ int bits = ctx->key_len * 8; -+ aes_t4_set_encrypt_key(key, bits, &cctx->ks.ks); -+ CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, -+ &cctx->ks, (block128_f)aes_t4_encrypt); -+#if 0 /* not yet */ -+ switch (bits) { -+ case 128: -+ cctx->str = enc?(ccm128_f)aes128_t4_ccm64_encrypt : -+ (ccm128_f)ae128_t4_ccm64_decrypt; -+ break; -+ case 192: -+ cctx->str = enc?(ccm128_f)aes192_t4_ccm64_encrypt : -+ (ccm128_f)ae192_t4_ccm64_decrypt; -+ break; -+ case 256: -+ cctx->str = enc?(ccm128_f)aes256_t4_ccm64_encrypt : -+ (ccm128_f)ae256_t4_ccm64_decrypt; -+ break; -+ default: -+ return 0; -+ } -+#endif -+ cctx->key_set = 1; -+ } -+ if (iv) { -+ memcpy(ctx->iv, iv, 15 - cctx->L); -+ cctx->iv_set = 1; -+ } -+ return 1; -+} -+ -+#define aes_t4_ccm_cipher aes_ccm_cipher -+static int aes_t4_ccm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, -+ const unsigned char *in, size_t len); -+ -+#define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ -+static const EVP_CIPHER aes_t4_##keylen##_##mode = { \ -+ nid##_##keylen##_##nmode,blocksize,keylen/8,ivlen, \ -+ flags|EVP_CIPH_##MODE##_MODE, \ -+ aes_t4_init_key, \ -+ aes_t4_##mode##_cipher, \ -+ NULL, \ -+ sizeof(EVP_AES_KEY), \ -+ NULL,NULL,NULL,NULL }; \ -+static const EVP_CIPHER aes_##keylen##_##mode = { \ -+ nid##_##keylen##_##nmode,blocksize, \ -+ keylen/8,ivlen, \ -+ flags|EVP_CIPH_##MODE##_MODE, \ -+ aes_init_key, \ -+ aes_##mode##_cipher, \ -+ NULL, \ -+ sizeof(EVP_AES_KEY), \ -+ NULL,NULL,NULL,NULL }; \ -+const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ -+{ return SPARC_AES_CAPABLE?&aes_t4_##keylen##_##mode:&aes_##keylen##_##mode; } -+ -+#define BLOCK_CIPHER_custom(nid,keylen,blocksize,ivlen,mode,MODE,flags) \ -+static const EVP_CIPHER aes_t4_##keylen##_##mode = { \ -+ nid##_##keylen##_##mode,blocksize, \ -+ (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ -+ flags|EVP_CIPH_##MODE##_MODE, \ -+ aes_t4_##mode##_init_key, \ -+ aes_t4_##mode##_cipher, \ -+ aes_##mode##_cleanup, \ -+ sizeof(EVP_AES_##MODE##_CTX), \ -+ NULL,NULL,aes_##mode##_ctrl,NULL }; \ -+static const EVP_CIPHER aes_##keylen##_##mode = { \ -+ nid##_##keylen##_##mode,blocksize, \ -+ (EVP_CIPH_##MODE##_MODE==EVP_CIPH_XTS_MODE?2:1)*keylen/8, ivlen, \ -+ flags|EVP_CIPH_##MODE##_MODE, \ -+ aes_##mode##_init_key, \ -+ aes_##mode##_cipher, \ -+ aes_##mode##_cleanup, \ -+ sizeof(EVP_AES_##MODE##_CTX), \ -+ NULL,NULL,aes_##mode##_ctrl,NULL }; \ -+const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ -+{ return SPARC_AES_CAPABLE?&aes_t4_##keylen##_##mode:&aes_##keylen##_##mode; } -+ - # else - - # define BLOCK_CIPHER_generic(nid,keylen,blocksize,ivlen,nmode,mode,MODE,flags) \ -@@ -480,7 +837,7 @@ - && !enc) - # ifdef BSAES_CAPABLE - if (BSAES_CAPABLE && mode == EVP_CIPH_CBC_MODE) { -- ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); -+ ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); - dat->block = (block128_f) AES_decrypt; - dat->stream.cbc = (cbc128_f) bsaes_cbc_encrypt; - } else -@@ -487,7 +844,7 @@ - # endif - # ifdef VPAES_CAPABLE - if (VPAES_CAPABLE) { -- ret = vpaes_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); -+ ret = vpaes_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); - dat->block = (block128_f) vpaes_decrypt; - dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? - (cbc128_f) vpaes_cbc_encrypt : NULL; -@@ -494,7 +851,7 @@ - } else - # endif - { -- ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks); -+ ret = AES_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks); - dat->block = (block128_f) AES_decrypt; - dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? - (cbc128_f) AES_cbc_encrypt : NULL; -@@ -508,7 +865,7 @@ - # endif - # ifdef VPAES_CAPABLE - if (VPAES_CAPABLE) { -- ret = vpaes_set_encrypt_key(key, ctx->key_len * 8, &dat->ks); -+ ret = vpaes_set_encrypt_key(key, ctx->key_len * 8, &dat->ks.ks); - dat->block = (block128_f) vpaes_encrypt; - dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? - (cbc128_f) vpaes_cbc_encrypt : NULL; -@@ -515,7 +872,7 @@ - } else - # endif - { -- ret = AES_set_encrypt_key(key, ctx->key_len * 8, &dat->ks); -+ ret = AES_set_encrypt_key(key, ctx->key_len*8, &dat->ks.ks); - dat->block = (block128_f) AES_encrypt; - dat->stream.cbc = mode == EVP_CIPH_CBC_MODE ? - (cbc128_f) AES_cbc_encrypt : NULL; -@@ -810,7 +1167,7 @@ - do { - # ifdef BSAES_CAPABLE - if (BSAES_CAPABLE) { -- AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); -+ AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); - CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, - (block128_f) AES_encrypt); - gctx->ctr = (ctr128_f) bsaes_ctr32_encrypt_blocks; -@@ -819,7 +1176,7 @@ - # endif - # ifdef VPAES_CAPABLE - if (VPAES_CAPABLE) { -- vpaes_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); -+ vpaes_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); - CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, - (block128_f) vpaes_encrypt); - gctx->ctr = NULL; -@@ -828,7 +1185,7 @@ - # endif - (void)0; /* terminate potentially open 'else' */ - -- AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); -+ AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); - CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, - (block128_f) AES_encrypt); - # ifdef AES_CTR_ASM -@@ -1049,15 +1406,15 @@ - # ifdef VPAES_CAPABLE - if (VPAES_CAPABLE) { - if (enc) { -- vpaes_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ vpaes_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) vpaes_encrypt; - } else { -- vpaes_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ vpaes_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) vpaes_decrypt; - } - - vpaes_set_encrypt_key(key + ctx->key_len / 2, -- ctx->key_len * 4, &xctx->ks2); -+ ctx->key_len * 4, &xctx->ks2.ks); - xctx->xts.block2 = (block128_f) vpaes_encrypt; - - xctx->xts.key1 = &xctx->ks1; -@@ -1067,15 +1424,15 @@ - (void)0; /* terminate potentially open 'else' */ - - if (enc) { -- AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) AES_encrypt; - } else { -- AES_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ AES_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) AES_decrypt; - } - - AES_set_encrypt_key(key + ctx->key_len / 2, -- ctx->key_len * 4, &xctx->ks2); -+ ctx->key_len * 4, &xctx->ks2.ks); - xctx->xts.block2 = (block128_f) AES_encrypt; - - xctx->xts.key1 = &xctx->ks1; -@@ -1196,7 +1553,7 @@ - do { - # ifdef VPAES_CAPABLE - if (VPAES_CAPABLE) { -- vpaes_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); -+ vpaes_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); - CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, - &cctx->ks, (block128_f) vpaes_encrypt); - cctx->str = NULL; -@@ -1204,7 +1561,7 @@ - break; - } - # endif -- AES_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); -+ AES_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); - CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, - &cctx->ks, (block128_f) AES_encrypt); - cctx->str = NULL; -@@ -1285,5 +1642,4 @@ - EVP_CIPH_FLAG_FIPS | CUSTOM_FLAGS) - BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, ccm, CCM, - EVP_CIPH_FLAG_FIPS | CUSTOM_FLAGS) --# endif - #endif -Index: openssl/crypto/evp/evp.h -=================================================================== ---- evp.h Mon Feb 11 07:26:04 2013 -+++ evp.h.new Thu May 2 14:31:55 2013 -@@ -1325,6 +1325,7 @@ - # define EVP_F_AESNI_INIT_KEY 165 - # define EVP_F_AESNI_XTS_CIPHER 176 - # define EVP_F_AES_INIT_KEY 133 -+# define EVP_F_AES_T4_INIT_KEY 178 - # define EVP_F_AES_XTS 172 - # define EVP_F_AES_XTS_CIPHER 175 - # define EVP_F_ALG_MODULE_INIT 177 -Index: openssl/crypto/evp/evp_err.c -=================================================================== ---- evp_err.c Mon Feb 11 07:26:04 2013 -+++ evp_err.c.new Thu May 2 14:33:24 2013 -@@ -73,6 +73,7 @@ - {ERR_FUNC(EVP_F_AESNI_INIT_KEY), "AESNI_INIT_KEY"}, - {ERR_FUNC(EVP_F_AESNI_XTS_CIPHER), "AESNI_XTS_CIPHER"}, - {ERR_FUNC(EVP_F_AES_INIT_KEY), "AES_INIT_KEY"}, -+ {ERR_FUNC(EVP_F_AES_T4_INIT_KEY), "AES_T4_INIT_KEY"}, - {ERR_FUNC(EVP_F_AES_XTS), "AES_XTS"}, - {ERR_FUNC(EVP_F_AES_XTS_CIPHER), "AES_XTS_CIPHER"}, - {ERR_FUNC(EVP_F_ALG_MODULE_INIT), "ALG_MODULE_INIT"}, -Index: crypto/sparc_arch.h -=================================================================== -diff -uNr openssl-1.0.1m/crypto/sparc_arch.h openssl-1.0.1m/crypto/sparc_arch.h ---- openssl-1.0.1m/crypto/sparc_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/sparc_arch.h 2015-03-21 16:27:38.578043100 +0100 -@@ -0,0 +1,101 @@ -+#ifndef __SPARC_ARCH_H__ -+#define __SPARC_ARCH_H__ -+ -+#define SPARCV9_TICK_PRIVILEGED (1<<0) -+#define SPARCV9_PREFER_FPU (1<<1) -+#define SPARCV9_VIS1 (1<<2) -+#define SPARCV9_VIS2 (1<<3) /* reserved */ -+#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ -+#define SPARCV9_BLK (1<<5) /* VIS1 block copy */ -+#define SPARCV9_VIS3 (1<<6) -+#define SPARCV9_RANDOM (1<<7) -+#define SPARCV9_64BIT_STACK (1<<8) -+ -+/* -+ * OPENSSL_sparcv9cap_P[1] is copy of Compatibility Feature Register, -+ * %asr26, SPARC-T4 and later. There is no SPARCV9_CFR bit in -+ * OPENSSL_sparcv9cap_P[0], as %cfr copy is sufficient... -+ */ -+#define CFR_AES 0x00000001 /* Supports AES opcodes */ -+#define CFR_DES 0x00000002 /* Supports DES opcodes */ -+#define CFR_KASUMI 0x00000004 /* Supports KASUMI opcodes */ -+#define CFR_CAMELLIA 0x00000008 /* Supports CAMELLIA opcodes */ -+#define CFR_MD5 0x00000010 /* Supports MD5 opcodes */ -+#define CFR_SHA1 0x00000020 /* Supports SHA1 opcodes */ -+#define CFR_SHA256 0x00000040 /* Supports SHA256 opcodes */ -+#define CFR_SHA512 0x00000080 /* Supports SHA512 opcodes */ -+#define CFR_MPMUL 0x00000100 /* Supports MPMUL opcodes */ -+#define CFR_MONTMUL 0x00000200 /* Supports MONTMUL opcodes */ -+#define CFR_MONTSQR 0x00000400 /* Supports MONTSQR opcodes */ -+#define CFR_CRC32C 0x00000800 /* Supports CRC32C opcodes */ -+ -+#if defined(OPENSSL_PIC) && !defined(__PIC__) -+#define __PIC__ -+#endif -+ -+#if defined(__SUNPRO_C) && defined(__sparcv9) && !defined(__arch64__) -+#define __arch64__ -+#endif -+ -+#define SPARC_PIC_THUNK(reg) \ -+ .align 32; \ -+.Lpic_thunk: \ -+ jmp %o7 + 8; \ -+ add %o7, reg, reg; -+ -+#define SPARC_PIC_THUNK_CALL(reg) \ -+ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ -+ call .Lpic_thunk; \ -+ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; -+ -+#if 1 -+#define SPARC_SETUP_GOT_REG(reg) SPARC_PIC_THUNK_CALL(reg) -+#else -+#define SPARC_SETUP_GOT_REG(reg) \ -+ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ -+ call .+8; \ -+ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; \ -+ add %o7, reg, reg -+#endif -+ -+#if defined(__arch64__) -+ -+#define SPARC_LOAD_ADDRESS(SYM, reg) \ -+ setx SYM, %o7, reg; -+#define LDPTR ldx -+#define SIZE_T_CC %xcc -+#define STACK_FRAME 192 -+#define STACK_BIAS 2047 -+#define STACK_7thARG (STACK_BIAS+176) -+ -+#else -+ -+#define SPARC_LOAD_ADDRESS(SYM, reg) \ -+ set SYM, reg; -+#define LDPTR ld -+#define SIZE_T_CC %icc -+#define STACK_FRAME 112 -+#define STACK_BIAS 0 -+#define STACK_7thARG 92 -+#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) SPARC_LOAD_ADDRESS(SYM, reg) -+ -+#endif -+ -+#ifdef __PIC__ -+#undef SPARC_LOAD_ADDRESS -+#undef SPARC_LOAD_ADDRESS_LEAF -+#define SPARC_LOAD_ADDRESS(SYM, reg) \ -+ SPARC_SETUP_GOT_REG(reg); \ -+ sethi %hi(SYM), %o7; \ -+ or %o7, %lo(SYM), %o7; \ -+ LDPTR [reg + %o7], reg; -+#endif -+ -+#ifndef SPARC_LOAD_ADDRESS_LEAF -+#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) \ -+ mov %o7, tmp; \ -+ SPARC_LOAD_ADDRESS(SYM, reg) \ -+ mov tmp, %o7; -+#endif -+ -+#endif /* __SPARC_ARCH_H__ */ -Index: crypto/md5/asm/md5-sparcv9.pl -=================================================================== -diff -uNr openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl ---- openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 -@@ -0,0 +1,434 @@ -+#!/usr/bin/env perl -+ -+# ==================================================================== -+# Written by Andy Polyakov for the OpenSSL -+# project. The module is, however, dual licensed under OpenSSL and -+# CRYPTOGAMS licenses depending on where you obtain it. For further -+# details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . -+# ==================================================================== -+ -+# MD5 for SPARCv9, 6.9 cycles per byte on UltraSPARC, >40% faster than -+# code generated by Sun C 5.2. -+ -+# SPARC T4 MD5 hardware achieves 3.20 cycles per byte, which is 2.1x -+# faster than software. Multi-process benchmark saturates at 12x -+# single-process result on 8-core processor, or ~11GBps per 2.85GHz -+# socket. -+ -+$bits=32; -+for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } -+if ($bits==64) { $bias=2047; $frame=192; } -+else { $bias=0; $frame=112; } -+ -+$output=shift; -+open STDOUT,">$output"; -+ -+use integer; -+ -+($ctx,$inp,$len)=("%i0","%i1","%i2"); # input arguments -+ -+# 64-bit values -+ at X=("%o0","%o1","%o2","%o3","%o4","%o5","%o7","%g1","%g2"); -+$tx="%g3"; -+($AB,$CD)=("%g4","%g5"); -+ -+# 32-bit values -+ at V=($A,$B,$C,$D)=map("%l$_",(0..3)); -+($t1,$t2,$t3,$saved_asi)=map("%l$_",(4..7)); -+($shr,$shl1,$shl2)=("%i3","%i4","%i5"); -+ -+my @K=( 0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee, -+ 0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501, -+ 0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be, -+ 0x6b901122,0xfd987193,0xa679438e,0x49b40821, -+ -+ 0xf61e2562,0xc040b340,0x265e5a51,0xe9b6c7aa, -+ 0xd62f105d,0x02441453,0xd8a1e681,0xe7d3fbc8, -+ 0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed, -+ 0xa9e3e905,0xfcefa3f8,0x676f02d9,0x8d2a4c8a, -+ -+ 0xfffa3942,0x8771f681,0x6d9d6122,0xfde5380c, -+ 0xa4beea44,0x4bdecfa9,0xf6bb4b60,0xbebfbc70, -+ 0x289b7ec6,0xeaa127fa,0xd4ef3085,0x04881d05, -+ 0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665, -+ -+ 0xf4292244,0x432aff97,0xab9423a7,0xfc93a039, -+ 0x655b59c3,0x8f0ccc92,0xffeff47d,0x85845dd1, -+ 0x6fa87e4f,0xfe2ce6e0,0xa3014314,0x4e0811a1, -+ 0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391, 0 ); -+ -+sub R0 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (7,12,17,22)[$i%4]; -+ my $j = ($i+1)/2; -+ -+ if ($i&1) { -+ $code.=<<___; -+ srlx @X[$j],$shr, at X[$j] ! align X[`$i+1`] -+ and $b,$t1,$t1 ! round $i -+ sllx @X[$j+1],$shl1,$tx -+ add $t2,$a,$a -+ sllx $tx,$shl2,$tx -+ xor $d,$t1,$t1 -+ or $tx, at X[$j], at X[$j] -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add @X[$j],$t2,$t2 ! X[`$i+1`]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ xor $b,$c,$t1 -+ add $t3,$a,$a -+___ -+ } else { -+ $code.=<<___; -+ srlx @X[$j],32,$tx ! extract X[`2*$j+1`] -+ and $b,$t1,$t1 ! round $i -+ add $t2,$a,$a -+ xor $d,$t1,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add $tx,$t2,$t2 ! X[`2*$j+1`]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ xor $b,$c,$t1 -+ add $t3,$a,$a -+___ -+ } -+} -+ -+sub R0_1 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (7,12,17,22)[$i%4]; -+ -+$code.=<<___; -+ srlx @X[0],32,$tx ! extract X[1] -+ and $b,$t1,$t1 ! round $i -+ add $t2,$a,$a -+ xor $d,$t1,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add $tx,$t2,$t2 ! X[1]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ andn $b,$c,$t1 -+ add $t3,$a,$a -+___ -+} -+ -+sub R1 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (5,9,14,20)[$i%4]; -+ my $j = $i<31 ? (1+5*($i+1))%16 : (5+3*($i+1))%16; -+ my $xi = @X[$j/2]; -+ -+$code.=<<___ if ($j&1 && ($xi=$tx)); -+ srlx @X[$j/2],32,$xi ! extract X[$j] -+___ -+$code.=<<___; -+ and $b,$d,$t3 ! round $i -+ add $t2,$a,$a -+ or $t3,$t1,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add $xi,$t2,$t2 ! X[$j]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ `$i<31?"andn":"xor"` $b,$c,$t1 -+ add $t3,$a,$a -+___ -+} -+ -+sub R2 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (4,11,16,23)[$i%4]; -+ my $j = $i<47 ? (5+3*($i+1))%16 : (0+7*($i+1))%16; -+ my $xi = @X[$j/2]; -+ -+$code.=<<___ if ($j&1 && ($xi=$tx)); -+ srlx @X[$j/2],32,$xi ! extract X[$j] -+___ @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Mon Dec 21 13:05:12 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Mon, 21 Dec 2015 12:05:12 +0000 Subject: SF.net SVN: gar:[25485] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pPKHk04gszdV@mail.opencsw.org> Revision: 25485 http://sourceforge.net/p/gar/code/25485 Author: claudio_sf Date: 2015-12-21 12:05:12 +0000 (Mon, 21 Dec 2015) Log Message: ----------- perl5/trunk: Remove CSWperl dep Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 09:22:16 UTC (rev 25484) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 12:05:12 UTC (rev 25485) @@ -87,7 +87,7 @@ RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgdbm4 CHECKPKG_OVERRIDES_CSWperl5 += file-with-bad-content # Temporary deps -RUNTIME_DEP_PKGS_CSWperl5 += CSWperl +#RUNTIME_DEP_PKGS_CSWperl5 += CSWperl CHECKPKG_OVERRIDES_CSWperl5 += missing-dependency|CSWperl # weird .nfs* file leftover CHECKPKG_OVERRIDES_CSWperl5 += pkginfo-opencsw-repository-uncommitted This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Mon Dec 21 13:07:50 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Mon, 21 Dec 2015 12:07:50 +0000 Subject: SF.net SVN: gar:[25486] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pPKLl3x3Kzgy@mail.opencsw.org> Revision: 25486 http://sourceforge.net/p/gar/code/25486 Author: claudio_sf Date: 2015-12-21 12:07:49 +0000 (Mon, 21 Dec 2015) Log Message: ----------- perl5/trunk: Put bin in perl5 and not in perl5/bin Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 12:05:12 UTC (rev 25485) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 12:07:49 UTC (rev 25486) @@ -50,8 +50,8 @@ CONFIGURE_ARGS += -Dman3ext=3perl$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dperladmin="root at localhost" CONFIGURE_ARGS += -Dprefix=$(prefix) -CONFIGURE_ARGS += -Dbin=$(prefix)/$(NAME)/bin -CONFIGURE_ARGS += -Dscriptdir=$(prefix)/$(NAME)/bin +CONFIGURE_ARGS += -Dbin=$(prefix)/$(NAME) +CONFIGURE_ARGS += -Dscriptdir=$(prefix)/$(NAME) CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Mon Dec 21 13:21:18 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Mon, 21 Dec 2015 12:21:18 +0000 Subject: SF.net SVN: gar:[25487] csw/mgar/pkg/openssl1/branches Message-ID: <3pPKgq3nTPzlK@mail.opencsw.org> Revision: 25487 http://sourceforge.net/p/gar/code/25487 Author: janholzh Date: 2015-12-21 12:21:18 +0000 (Mon, 21 Dec 2015) Log Message: ----------- openssl1/branches/openssl_101: branch openssl 1.0.1 Added Paths: ----------- csw/mgar/pkg/openssl1/branches/openssl_101/ csw/mgar/pkg/openssl1/branches/openssl_101/Makefile csw/mgar/pkg/openssl1/branches/openssl_101/checksums csw/mgar/pkg/openssl1/branches/openssl_101/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/branches/openssl_101/files/update-t4-patch.sh Removed Paths: ------------- csw/mgar/pkg/openssl1/branches/openssl_101/Makefile csw/mgar/pkg/openssl1/branches/openssl_101/checksums csw/mgar/pkg/openssl1/branches/openssl_101/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/branches/openssl_101/files/update-t4-patch.sh Deleted: csw/mgar/pkg/openssl1/branches/openssl_101/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-10-14 22:26:32 UTC (rev 25293) +++ csw/mgar/pkg/openssl1/branches/openssl_101/Makefile 2015-12-21 12:21:18 UTC (rev 25487) @@ -1,357 +0,0 @@ -##################################################################### -# OpenCSW build recipe for OpenSSL -# -# Copyright 2009 Yann Rouillard -# All rights reserved. Use is subject to license terms. -# -# Redistribution and/or use, with or without modification, is -# permitted. This software is without warranty of any kind. The -# author(s) shall not be liable in the event that use of the -# software causes damage. -##################################################################### - -###### Package information ####### - -NAME = openssl -VERSION = 1.0.1p -GARTYPE = v2 -# Since version 1.0.0, soname is fixed and does not follow the minor releases -SONAME=1.0.0 - -DESCRIPTION = The Open Source toolkit for SSL and TLS -define BLURB - The OpenSSL Project is a collaborative effort to develop a robust, - commercial-grade, fully featured, and Open Source toolkit implementing the - Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) as well - as a full-strength general-purpose cryptography library. -endef - -# This recipe can be used to compile openssl with Sun Studio or GCC -# Just define the GARCOMPILER to the GNU or SUN -GARCOMPILER = GNU -GARCOMPILER_TYPE = $(if $(findstring GCC,$(GARCOMPILER)),GNU,SUN) - -PACKAGES = CSWlibssl1-0-0 CSWlibssl-dev CSWopenssl-utils - -PACKAGING_PLATFORMS = solaris9-sparc solaris9-i386 solaris10-sparc solaris10-i386 solaris11-sparc solaris11-i386 - -RUNTIME_DEP_PKGS_CSWlibssl1-0-0 = $(RUNTIME_DEP_PKGS_CSWlibssl1-0-0_$(GARCOMPILER_TYPE)) -RUNTIME_DEP_PKGS_CSWlibssl1-0-0_GNU = CSWlibgcc-s1 -SPKG_DESC_CSWlibssl1-0-0 = Openssl 1.0 runtime libraries -PKGFILES_CSWlibssl1-0-0 = $(PKGFILES_RT) -PKGFILES_CSWlibssl1-0-0 += $(libdir)(/[^/]*)?/openssl-1.0.0/engines/.* -PKGFILES_CSWlibssl1-0-0 += $(prefix)/etc/ssl/private $(prefix)/etc/ssl/certs -PKGFILES_CSWlibssl1-0-0 += $(docdir)/libssl1_0_0/.* - -RUNTIME_DEP_PKGS_CSWlibssl-dev = CSWlibssl1-0-0 -SPKG_DESC_CSWlibssl-dev = Openssl 1.0 development support files -PKGFILES_CSWlibssl-dev = $(PKGFILES_DEVEL) -PKGFILES_CSWlibssl-dev += $(docdir)/libssl_dev/.* - -RUNTIME_DEP_PKGS_CSWopenssl-utils = CSWlibssl1-0-0 -SPKG_DESC_CSWopenssl-utils = Openssl 1.0 binaries and related tools -PKGFILES_CSWopenssl-utils = $(bindir)/[^/]* $(bindir)/.*/openssl -PKGFILES_CSWopenssl-utils += $(mandir)/man1/.* $(mandir)/man5/.* $(mandir)/man7/.* -PKGFILES_CSWopenssl-utils += $(prefix)/ssl/misc/.* -PKGFILES_CSWopenssl-utils += $(prefix)/ssl/openssl\.cnf.* -PKGFILES_CSWopenssl-utils += $(sysconfdir)/ssl/openssl\.cnf.* -PKGFILES_CSWopenssl-utils += $(docdir)/openssl_utils/.* - -PRESERVECONF = $(sysconfdir)/ssl/openssl.cnf - -# We do ship libcrypto in libssl package -CHECKPKG_OVERRIDES_CSWlibssl1-0-0 += shared-lib-pkgname-mismatch|file=opt/csw/lib/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 -CHECKPKG_OVERRIDES_CSWlibssl1-0-0 += $(CHECKPKG_OVERRIDES_CSWlibssl1-0-0_$(GARCH)) - -CHECKPKG_OVERRIDES_CSWlibssl1-0-0_sparc += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv8plus/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 -CHECKPKG_OVERRIDES_CSWlibssl1-0-0_sparc += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv8plus+vis/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 -CHECKPKG_OVERRIDES_CSWlibssl1-0-0_sparc += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv9/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 - -CHECKPKG_OVERRIDES_CSWlibssl1-0-0_i386 += shared-lib-pkgname-mismatch|file=opt/csw/lib/amd64/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 - -# We use SUN perl, not the opencsw one -CHECKPKG_OVERRIDES_CSWopenssl-utils += missing-dependency|CSWperl - -###### Upstream and opencsw files information ####### - -MASTER_SITES = http://www.openssl.org/source/ - -DISTFILES = $(NAME)-$(VERSION).tar.gz -DISTFILES += changelog.CSW README.CSW -DISTFILES += map.openssl.libcrypto map.openssl.libssl map.openssl.engines - -DOCFILES = CHANGES CHANGES.SSLeay PROBLEMS README FAQ README.ASN1 INSTALL NEWS README.ENGINE - -# List of engines that will be shipped in the packages -ENGINES = 4758cca aep atalla cswift gmp chil nuron sureware ubsec padlock capi - -# configure targets patchs needs to be different for Solaris 9 as some map files -# are not available -ifeq ($(shell /usr/bin/uname -r),5.9) - PATCH_SUFFIX = .SunOS5.9 -endif - -# This patch is taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ -# original file: components/openssl/openssl-1.0.1/patches/18-compiler_opts.patch -# I think they are smarter than me to figure what are the best compiler options -PATCHFILES += optimized_configure_targets.patch$(PATCH_SUFFIX) - -# This patch add optimised build targets for some solaris isa, ie: -# solaris-sparcv8-cc-sunw, solaris-pentium_pro-cc-sunw and solaris-sparcv9+vis-cc-sunw -# (wonder if they are really worth it) -PATCHFILES += more_configure_targets.patch$(PATCH_SUFFIX) - - -#PATCHFILES += fix-test-failure.patch - -# We install engines libraries in /opt/csw/lib/engines/1.0.0/ -# instead of /opt/csw/lib/engines to avoid clashes with 0.9.8 -# and futur new release of ssl libraries -PATCHFILES += 0003-make-engines-directory-soname-dependant.patch - -# Upstream uses an obsolete GCC flag -# not the case anymore -#PATCHFILES += 0004-remove-obsolete-mv8.patch - -# Update openssl.cnf path in man page to follow opencsw standard -PATCHFILES += opencsw_paths.patch - -# Make sure man pages and html docs are installed in proper locations -# instead of /opt/csw/ssl/man and /opt/csw/ssl/html -PATCHFILES += 0010-Move-manpages-and-html-doc-in-standard-locations.patch - -# Let's always block some compromised CA, whatever the CA configured -# (patchs taken from Debian Package) -PATCHFILES += block_bad_certificates.patch - -# Add old-style certificates hash generation to maintain compatibilies -# with gnutls and programs linked with openssl 0.9.8 -# Patch taken from Debian -PATCHFILES += c_rehash-compat.patch - -# Oh yes, let's do symbol versioning so we don't become -# crazy during library migration -PATCHFILES += 0007-enables-symbols-versioning.patch - -# openssl currently only uses issetugid on freebsd and openbsd -# althought it is also available on Solaris 10 -# We make issetugid support configurable via preprocessor flag -# to be able to enable it for Solaris -# Bug opened upstream: http://rt.openssl.org/Ticket/Display.html?id=3153 -PATCHFILES += make_issetugid_support_configurable.patch - -# Patch taken from Oracle upstream (PSARC/2014/077 OpenSSL Thread and Fork Safety 17822462) -# from https://hg.openindiana.org/upstream/oracle/userland-gate/ -# This patch solves a bug with thread and fork safety and is also needed so that -# upstream wanboot patch can be applied out of the box -ifneq ($(shell /usr/bin/uname -r),5.9) -PATCHFILES += openssl-1.0.1m-fork_safe.patch -endif - -# support for pkcs11 engine http://blogs.sun.com/chichang1/entry/how_to_integrate_pkcs11_engine -ifneq ($(shell /usr/bin/uname -r),5.9) - PATCHFILES += openssl-1.0.1m-pkcs11-engine.patch - ENGINES += pk11 -endif - -# support for sparc t4 crypto engine -# see http://bubbva.blogspot.fr/2011/11/exciting-crypto-advances-with-t4.html -# https://blogs.oracle.com/DanX/entry/sparc_t4_openssl_engine -# patch taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ -# To update the patch, do: -# cd files && ./update-t4-patch.sh OPENSSL_VERSION - -# The upstream t4 engine patch depends on the wanboot one -# so we will apply the wanboot patch even if we will not enable wanboot -PATCHFILES.sparc.5.11 += openssl-1.0.1m-wanboot.patch -PATCHFILES.sparc.5.11 += openssl-1.0.1m-t4-engine.sparc.5.11.patch -PATCHFILES.sparc.5.11 += openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch -PATCHFILES += $(PATCHFILES.$(GARCH).$(GAROSREL)) - - -# Building openssl with "-j" option doesn't work properly because of dependencies -# in the Makefile. -# This patch fixes this problem, it's taken from gentoo and adapted so that it works -# with sh shell. -# (see http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/openssl/files/) -# does not apply anymore -#PATCHFILES += openssl-1.0.1-parallel-build.patch - -LICENSE = LICENSE - -##### Build and installation information ##### - -BUILD64 = 1 -ISAEXEC = 1 - -# The list of instructions set for which we will -# provide optimized libraries and binaries -EXTRA_BUILD_ISAS_i386 = pentium_pro amd64 -EXTRA_BUILD_ISAS_sparc = sparcv8plus sparcv9 - - -# the openssl build system doesn't honor bindir -# as it doesn't install 64 bits binaries in bin/{amd64,sparcv9} -# we fix this at the merge step -EXTRA_MERGE_DIRS_isa-amd64 = $(bindir_install) -EXTRA_MERGE_DIRS_isa-sparcv9 = $(bindir_install) - -# c_rehash is shell script: no isaexec please -EXTRA_ISAEXEC_EXCLUDE_FILES = /opt/csw/bin/c_rehash - -# We use Studio 12.3 to have the "-Qoption cg" option -# but this version is not available under Solaris 9 -ifneq ($(shell /usr/bin/uname -r),5.9) - ifneq ($(GARCOMPILER),GNU) - GARCOMPILER = SOS12U3 - endif -endif - -# The corresponding os/compiler to pass to the -# openssl Configure script -i386_SUN_CONFIGURE_TARGET = no-sse2 solaris-x86-cc-sunw -pentium_pro_SUN_CONFIGURE_TARGET = solaris-x86-pentium_pro-cc-sunw -amd64_SUN_CONFIGURE_TARGET = solaris64-x86_64-cc-sunw - -i386_GNU_CONFIGURE_TARGET = no-sse2 solaris-x86-gcc -pentium_pro_GNU_CONFIGURE_TARGET = solaris-x86-gcc -amd64_GNU_CONFIGURE_TARGET = solaris64-x86_64-gcc - -sparcv8_SUN_CONFIGURE_TARGET = solaris-sparcv8-cc-sunw -sparcv8plus_SUN_CONFIGURE_TARGET = solaris-sparcv9-cc-sunw -sparcv8plus+vis_SUN_CONFIGURE_TARGET = solaris-sparcv9+vis-cc-sunw -sparcv9_SUN_CONFIGURE_TARGET = solaris64-sparcv9-cc-sunw - -sparcv8_GNU_CONFIGURE_TARGET = solaris-sparcv8-gcc -sparcv8plus_GNU_CONFIGURE_TARGET = solaris-sparcv9-gcc -sparcv8plus+vis_GNU_CONFIGURE_TARGET = solaris-sparcv9+vis-gcc -sparcv9_GNU_CONFIGURE_TARGET = solaris64-sparcv9-gcc - - -# Solaris has the issetugid function since libc version interface SUNW_1.21 -# but openssl doesn't use it by default so we manually enable it -CONFIGURE_FLAGS = -DHAVE_ISSETUGID - -# PKCS11 Patch also works on sparc64 athena processors thanks for the FJAES -# instruction set. The presence of this instruction set is checked at runtime -# by looking for the AV_SPARC_JFAES instruction set bit, unfortunately the -# corresponding macro in not present in Solaris 9-11 headers, so we manually -# define it. -CONFIGURE_FLAGS += -DAV_SPARC_FJAES=0 - -# --libdir must only be given if the directory is actually different from lib or the creation will fail -# as the directory is already there -LIBDIR_64 = --libdir=lib/64 -LIBDIR = $(LIBDIR_$(MEMORYMODEL)) - -CONFIGURE_ARGS = --prefix=$(prefix) -CONFIGURE_ARGS += --openssldir=$(sysconfdir)/ssl -CONFIGURE_ARGS += --install_prefix=$(DESTDIR) $(LIBDIR) -CONFIGURE_ARGS += $(CONFIGURE_FLAGS) -CONFIGURE_ARGS += $($(ISA)_$(GARCOMPILER_TYPE)_CONFIGURE_TARGET) -CONFIGURE_ARGS += shared - -# PKCS11 is only for Solaris 10 so we must create solaris 10 specific packages -ifneq ($(shell /usr/bin/uname -r),5.9) - CONFIGURE_ARGS += --pk11-libname=$(abspath /usr/lib/$(MM_LIBDIR)/libpkcs11.so) -endif - -# For now we want the sun perl to be used -EXTRA_CONFIGURE_ENV += PERL="/usr/bin/perl" - -# Configure uses make and sun make is not happy -# with the shell command added by the t4 patch -EXTRA_CONFIGURE_ENV += MAKE="/opt/csw/bin/gmake" - -# The new compiler options taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ -# added "-z defs" to the linker options. That causes object compilation to fail because -# they are not linked against libc and libdl (for Sol9). This is workaround until I find a better fix. -EXTRA_LD_OPTIONS = -lc -ldl - -# By default, the install target put man pages under -# /opt/csw/ssl/man, but we want them under /opt/csw/share/man -EXTRA_INSTALL_ARGS += MANDIR=$(mandir) - -# library files are not automatically stripped -STRIP_DIRS = $(DESTDIR)/$(libdir) $(DESTDIR)/$(libdir)/openssl-$(SONAME)/engines/ - -TEST_TARGET = tests - -# We define a custom test script to be able to disable -j only for test execution -# as it doesn't work currently -TEST_SCRIPTS = custom - -include gar/category.mk - -# We remove SSE2 hardware capability in the elf header of libcrypto as -# openssl is able to select it at runtime and the Solaris OS support SSE2 since -# Solaris 9 4/04 (according to "Sun Studio 12: C++ User's Guide") -post-install: - if command -v elfedit >/dev/null 2>&1 && [ "$(GARCH)" = "i386" ] && \ - /usr/ccs/bin/dump -Lv "$(DESTDIR)/$(libdir)/libcrypto.so.$(SONAME)" | grep SUNW_CAP >/dev/null; then \ - echo " ==> Removing the SSE2 hardware capability from libcrypto"; \ - chmod +w "$(DESTDIR)/$(libdir)/libcrypto.so.$(SONAME)"; \ - elfedit -e 'cap:hw1 -and -cmp sse2' "$(DESTDIR)/$(libdir)/libcrypto.so.$(SONAME)"; \ - fi - @$(MAKECOOKIE) - -pre-configure-modulated: - echo " ==> Creating configure script" - cd $(WORKSRC) && ln -nf Configure configure - ln -nf $(WORKDIR)/map.openssl.libcrypto $(WORKSRC)/map.openssl.libcrypto - ln -nf $(WORKDIR)/map.openssl.libssl $(WORKSRC)/map.openssl.libssl - for ENGINE in $(ENGINES); do \ - ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/map.openssl.lib$$ENGINE; \ - done - ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/ccgost/map.openssl.libgost - @$(MAKECOOKIE) - -install-conf-misc: - [ ! -f "$(PKGROOT)$(sysconfdir)/ssl/openssl.cnf" ] || \ - mv "$(PKGROOT)$(sysconfdir)/ssl/openssl.cnf" $(PKGROOT)$(sysconfdir)/ssl/openssl.cnf.CSW - [ ! -d "$(PKGROOT)$(sysconfdir)/ssl/misc" ] || \ - ( ginstall -d "$(PKGROOT)/$(prefix)/ssl/" && mv "$(PKGROOT)$(sysconfdir)/ssl/misc/" "$(PKGROOT)/$(prefix)/ssl/" ) - -merge-doc: - for CATALOGNAME in $(foreach PKG, $(PACKAGES), $(call catalogname,$(PKG))); do \ - ginstall -d $(PKGROOT)/$(docdir)/$$CATALOGNAME; \ - (cd $(DOWNLOADDIR)/ && ginstall -m 0644 README.CSW changelog.CSW $(PKGROOT)/$(docdir)/$$CATALOGNAME/); \ - (cd $(WORKSRC_FIRSTMOD)/ && ginstall -m 0644 $(DOCFILES) $(PKGROOT)/$(docdir)/$$CATALOGNAME/); \ - done - -post-merge-all: merge-doc install-conf-misc - - -NUM_CPUS := $(shell psrinfo | wc -l | awk '{ print $$1 }') - -package-fast: - PARALLELMODULATIONS=1 PARALLELMFLAGS="-j" $(MAKE) package - #PARALLELMODULATIONS=1 PARALLELMFLAGS="--jobs=$(NUM_CPUS) --load-average=$(NUM_CPUS)" $(MAKE) package - -platforms-fast: - @mkdir -p work - @echo - @echo "Building on all hosts in parallel. Please see the individual logfiles for details:";$(foreach P,$(_PACKAGING_PLATFORMS),echo "- $P: work/build-$(PACKAGING_HOST_$P).log";) - @echo - @trap "cat $(foreach P,$(_PACKAGING_PLATFORMS),work/build-$(PACKAGING_HOST_$P).pid) 2>/dev/null | xargs -L 1 pkill -9 -P &>/dev/null; \ - stty sane" INT; \ - $(foreach P,$(_PACKAGING_PLATFORMS),\ - ( $(SSH) -t $(PACKAGING_HOST_$P) "$(foreach V,$(_PROPAGATE_ENV),$(if $($V),$V=\"$($V)\")) $(MAKE) -I $(GARDIR) -C $(CURDIR) $(_PASS_GAR_ENV) GAR_PLATFORM=$P package-fast" >work/build-$(PACKAGING_HOST_$P).log 2>&1; echo $$? >work/build-$(PACKAGING_HOST_$P).ret ) & \ - echo $$! >work/build-$(PACKAGING_HOST_$P).pid; ) wait; stty sane; trap - INT - @$(foreach P,$(_PACKAGING_PLATFORMS),if [ "`cat work/build-$(PACKAGING_HOST_$P).ret`" -ne 0 ]; then \ - FAILED=1; \ - echo "Build error on host $(PACKAGING_HOST_$P). For details, please see"; \ - echo " work/build-$(PACKAGING_HOST_$P).log"; \ - echo "Return code: `cat work/build-$(PACKAGING_HOST_$P).ret`"; \ - echo ; \ - fi;) if [ $${FAILED} -eq 1 ]; then \ - exit 2; \ - fi - @echo - @echo "Calling the standard platforms target to make sure everything is ok..." - @echo - $(MAKE) platforms - -# The only purpose of this script is to disable the gmake "-j" option for test execution -test-custom: - PARALLELMFLAGS= $(MAKE) test-$(WORKSRC)/Makefile Copied: csw/mgar/pkg/openssl1/branches/openssl_101/Makefile (from rev 25484, csw/mgar/pkg/openssl1/trunk/Makefile) =================================================================== --- csw/mgar/pkg/openssl1/branches/openssl_101/Makefile (rev 0) +++ csw/mgar/pkg/openssl1/branches/openssl_101/Makefile 2015-12-21 12:21:18 UTC (rev 25487) @@ -0,0 +1,357 @@ +##################################################################### +# OpenCSW build recipe for OpenSSL +# +# Copyright 2009 Yann Rouillard +# All rights reserved. Use is subject to license terms. +# +# Redistribution and/or use, with or without modification, is +# permitted. This software is without warranty of any kind. The +# author(s) shall not be liable in the event that use of the +# software causes damage. +##################################################################### + +###### Package information ####### + +NAME = openssl +VERSION = 1.0.1q +GARTYPE = v2 +# Since version 1.0.0, soname is fixed and does not follow the minor releases +SONAME=1.0.0 + +DESCRIPTION = The Open Source toolkit for SSL and TLS +define BLURB + The OpenSSL Project is a collaborative effort to develop a robust, + commercial-grade, fully featured, and Open Source toolkit implementing the + Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) as well + as a full-strength general-purpose cryptography library. +endef + +# This recipe can be used to compile openssl with Sun Studio or GCC +# Just define the GARCOMPILER to the GNU or SUN +GARCOMPILER = SOS12U4 +GARCOMPILER_TYPE = $(if $(findstring GCC,$(GARCOMPILER)),GNU,SUN) + +PACKAGES = CSWlibssl1-0-0 CSWlibssl-dev CSWopenssl-utils + +PACKAGING_PLATFORMS = solaris9-sparc solaris9-i386 solaris10-sparc solaris10-i386 solaris11-sparc solaris11-i386 + +RUNTIME_DEP_PKGS_CSWlibssl1-0-0 = $(RUNTIME_DEP_PKGS_CSWlibssl1-0-0_$(GARCOMPILER_TYPE)) +RUNTIME_DEP_PKGS_CSWlibssl1-0-0_GNU = CSWlibgcc-s1 +SPKG_DESC_CSWlibssl1-0-0 = Openssl 1.0 runtime libraries +PKGFILES_CSWlibssl1-0-0 = $(PKGFILES_RT) +PKGFILES_CSWlibssl1-0-0 += $(libdir)(/[^/]*)?/openssl-1.0.0/engines/.* +PKGFILES_CSWlibssl1-0-0 += $(prefix)/etc/ssl/private $(prefix)/etc/ssl/certs +PKGFILES_CSWlibssl1-0-0 += $(docdir)/libssl1_0_0/.* + +RUNTIME_DEP_PKGS_CSWlibssl-dev = CSWlibssl1-0-0 +SPKG_DESC_CSWlibssl-dev = Openssl 1.0 development support files +PKGFILES_CSWlibssl-dev = $(PKGFILES_DEVEL) +PKGFILES_CSWlibssl-dev += $(docdir)/libssl_dev/.* + +RUNTIME_DEP_PKGS_CSWopenssl-utils = CSWlibssl1-0-0 +SPKG_DESC_CSWopenssl-utils = Openssl 1.0 binaries and related tools +PKGFILES_CSWopenssl-utils = $(bindir)/[^/]* $(bindir)/.*/openssl +PKGFILES_CSWopenssl-utils += $(mandir)/man1/.* $(mandir)/man5/.* $(mandir)/man7/.* +PKGFILES_CSWopenssl-utils += $(prefix)/ssl/misc/.* +PKGFILES_CSWopenssl-utils += $(prefix)/ssl/openssl\.cnf.* +PKGFILES_CSWopenssl-utils += $(sysconfdir)/ssl/openssl\.cnf.* +PKGFILES_CSWopenssl-utils += $(docdir)/openssl_utils/.* + +PRESERVECONF = $(sysconfdir)/ssl/openssl.cnf + +# We do ship libcrypto in libssl package +CHECKPKG_OVERRIDES_CSWlibssl1-0-0 += shared-lib-pkgname-mismatch|file=opt/csw/lib/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 +CHECKPKG_OVERRIDES_CSWlibssl1-0-0 += $(CHECKPKG_OVERRIDES_CSWlibssl1-0-0_$(GARCH)) + +CHECKPKG_OVERRIDES_CSWlibssl1-0-0_sparc += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv8plus/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 +CHECKPKG_OVERRIDES_CSWlibssl1-0-0_sparc += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv8plus+vis/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 +CHECKPKG_OVERRIDES_CSWlibssl1-0-0_sparc += shared-lib-pkgname-mismatch|file=opt/csw/lib/sparcv9/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 + +CHECKPKG_OVERRIDES_CSWlibssl1-0-0_i386 += shared-lib-pkgname-mismatch|file=opt/csw/lib/amd64/libcrypto.so.1.0.0|soname=libcrypto.so.1.0.0|pkgname=CSWlibssl1-0-0|expected=CSWlibcrypto1-0-0 + +# We use SUN perl, not the opencsw one +CHECKPKG_OVERRIDES_CSWopenssl-utils += missing-dependency|CSWperl + +###### Upstream and opencsw files information ####### + +MASTER_SITES = http://www.openssl.org/source/ + +DISTFILES = $(NAME)-$(VERSION).tar.gz +DISTFILES += changelog.CSW README.CSW +DISTFILES += map.openssl.libcrypto map.openssl.libssl map.openssl.engines + +DOCFILES = CHANGES CHANGES.SSLeay PROBLEMS README FAQ README.ASN1 INSTALL NEWS README.ENGINE + +# List of engines that will be shipped in the packages +ENGINES = 4758cca aep atalla cswift gmp chil nuron sureware ubsec padlock capi + +# configure targets patchs needs to be different for Solaris 9 as some map files +# are not available +ifeq ($(shell /usr/bin/uname -r),5.9) + PATCH_SUFFIX = .SunOS5.9 +endif + +# This patch is taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ +# original file: components/openssl/openssl-1.0.1/patches/18-compiler_opts.patch +# I think they are smarter than me to figure what are the best compiler options +PATCHFILES += optimized_configure_targets.patch$(PATCH_SUFFIX) + +# This patch add optimised build targets for some solaris isa, ie: +# solaris-sparcv8-cc-sunw, solaris-pentium_pro-cc-sunw and solaris-sparcv9+vis-cc-sunw +# (wonder if they are really worth it) +PATCHFILES += more_configure_targets.patch$(PATCH_SUFFIX) + + +#PATCHFILES += fix-test-failure.patch + +# We install engines libraries in /opt/csw/lib/engines/1.0.0/ +# instead of /opt/csw/lib/engines to avoid clashes with 0.9.8 +# and futur new release of ssl libraries +PATCHFILES += 0003-make-engines-directory-soname-dependant.patch + +# Upstream uses an obsolete GCC flag +# not the case anymore +#PATCHFILES += 0004-remove-obsolete-mv8.patch + +# Update openssl.cnf path in man page to follow opencsw standard +PATCHFILES += opencsw_paths.patch + +# Make sure man pages and html docs are installed in proper locations +# instead of /opt/csw/ssl/man and /opt/csw/ssl/html +PATCHFILES += 0010-Move-manpages-and-html-doc-in-standard-locations.patch + +# Let's always block some compromised CA, whatever the CA configured +# (patchs taken from Debian Package) +PATCHFILES += block_bad_certificates.patch + +# Add old-style certificates hash generation to maintain compatibilies +# with gnutls and programs linked with openssl 0.9.8 +# Patch taken from Debian +PATCHFILES += c_rehash-compat.patch + +# Oh yes, let's do symbol versioning so we don't become +# crazy during library migration +PATCHFILES += 0007-enables-symbols-versioning.patch + +# openssl currently only uses issetugid on freebsd and openbsd +# althought it is also available on Solaris 10 +# We make issetugid support configurable via preprocessor flag +# to be able to enable it for Solaris +# Bug opened upstream: http://rt.openssl.org/Ticket/Display.html?id=3153 +PATCHFILES += make_issetugid_support_configurable.patch + +# Patch taken from Oracle upstream (PSARC/2014/077 OpenSSL Thread and Fork Safety 17822462) +# from https://hg.openindiana.org/upstream/oracle/userland-gate/ +# This patch solves a bug with thread and fork safety and is also needed so that +# upstream wanboot patch can be applied out of the box +ifneq ($(shell /usr/bin/uname -r),5.9) +PATCHFILES += openssl-1.0.1m-fork_safe.patch +endif + +# support for pkcs11 engine http://blogs.sun.com/chichang1/entry/how_to_integrate_pkcs11_engine +ifneq ($(shell /usr/bin/uname -r),5.9) + PATCHFILES += openssl-1.0.1m-pkcs11-engine.patch + ENGINES += pk11 +endif + +# support for sparc t4 crypto engine +# see http://bubbva.blogspot.fr/2011/11/exciting-crypto-advances-with-t4.html +# https://blogs.oracle.com/DanX/entry/sparc_t4_openssl_engine +# patch taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ +# To update the patch, do: +# cd files && ./update-t4-patch.sh OPENSSL_VERSION + +# The upstream t4 engine patch depends on the wanboot one +# so we will apply the wanboot patch even if we will not enable wanboot +PATCHFILES.sparc.5.11 += openssl-1.0.1m-wanboot.patch +PATCHFILES.sparc.5.11 += openssl-1.0.1m-t4-engine.sparc.5.11.patch +PATCHFILES.sparc.5.11 += openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch +PATCHFILES += $(PATCHFILES.$(GARCH).$(GAROSREL)) + + +# Building openssl with "-j" option doesn't work properly because of dependencies +# in the Makefile. +# This patch fixes this problem, it's taken from gentoo and adapted so that it works +# with sh shell. +# (see http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/openssl/files/) +# does not apply anymore +#PATCHFILES += openssl-1.0.1-parallel-build.patch + +LICENSE = LICENSE + +##### Build and installation information ##### + +BUILD64 = 1 +ISAEXEC = 1 + +# The list of instructions set for which we will +# provide optimized libraries and binaries +EXTRA_BUILD_ISAS_i386 = pentium_pro amd64 +EXTRA_BUILD_ISAS_sparc = sparcv8plus sparcv9 + + +# the openssl build system doesn't honor bindir +# as it doesn't install 64 bits binaries in bin/{amd64,sparcv9} +# we fix this at the merge step +EXTRA_MERGE_DIRS_isa-amd64 = $(bindir_install) +EXTRA_MERGE_DIRS_isa-sparcv9 = $(bindir_install) + +# c_rehash is shell script: no isaexec please +EXTRA_ISAEXEC_EXCLUDE_FILES = /opt/csw/bin/c_rehash + +# We use Studio 12.3 to have the "-Qoption cg" option +# but this version is not available under Solaris 9 +ifneq ($(shell /usr/bin/uname -r),5.9) + ifneq ($(GARCOMPILER),GNU) + GARCOMPILER = SOS12U4 + endif +endif + +# The corresponding os/compiler to pass to the +# openssl Configure script +i386_SUN_CONFIGURE_TARGET = no-sse2 solaris-x86-cc-sunw +pentium_pro_SUN_CONFIGURE_TARGET = solaris-x86-pentium_pro-cc-sunw +amd64_SUN_CONFIGURE_TARGET = solaris64-x86_64-cc-sunw + +i386_GNU_CONFIGURE_TARGET = no-sse2 solaris-x86-gcc +pentium_pro_GNU_CONFIGURE_TARGET = solaris-x86-gcc +amd64_GNU_CONFIGURE_TARGET = solaris64-x86_64-gcc + +sparcv8_SUN_CONFIGURE_TARGET = solaris-sparcv8-cc-sunw +sparcv8plus_SUN_CONFIGURE_TARGET = solaris-sparcv9-cc-sunw +sparcv8plus+vis_SUN_CONFIGURE_TARGET = solaris-sparcv9+vis-cc-sunw +sparcv9_SUN_CONFIGURE_TARGET = solaris64-sparcv9-cc-sunw + +sparcv8_GNU_CONFIGURE_TARGET = solaris-sparcv8-gcc +sparcv8plus_GNU_CONFIGURE_TARGET = solaris-sparcv9-gcc +sparcv8plus+vis_GNU_CONFIGURE_TARGET = solaris-sparcv9+vis-gcc +sparcv9_GNU_CONFIGURE_TARGET = solaris64-sparcv9-gcc + + +# Solaris has the issetugid function since libc version interface SUNW_1.21 +# but openssl doesn't use it by default so we manually enable it +CONFIGURE_FLAGS = -DHAVE_ISSETUGID + +# PKCS11 Patch also works on sparc64 athena processors thanks for the FJAES +# instruction set. The presence of this instruction set is checked at runtime +# by looking for the AV_SPARC_JFAES instruction set bit, unfortunately the +# corresponding macro in not present in Solaris 9-11 headers, so we manually +# define it. +CONFIGURE_FLAGS += -DAV_SPARC_FJAES=0 + +# --libdir must only be given if the directory is actually different from lib or the creation will fail +# as the directory is already there +LIBDIR_64 = --libdir=lib/64 +LIBDIR = $(LIBDIR_$(MEMORYMODEL)) + +CONFIGURE_ARGS = --prefix=$(prefix) +CONFIGURE_ARGS += --openssldir=$(sysconfdir)/ssl +CONFIGURE_ARGS += --install_prefix=$(DESTDIR) $(LIBDIR) +CONFIGURE_ARGS += $(CONFIGURE_FLAGS) +CONFIGURE_ARGS += $($(ISA)_$(GARCOMPILER_TYPE)_CONFIGURE_TARGET) +CONFIGURE_ARGS += shared + +# PKCS11 is only for Solaris 10 so we must create solaris 10 specific packages +ifneq ($(shell /usr/bin/uname -r),5.9) + CONFIGURE_ARGS += --pk11-libname=$(abspath /usr/lib/$(MM_LIBDIR)/libpkcs11.so) +endif + +# For now we want the sun perl to be used +EXTRA_CONFIGURE_ENV += PERL="/usr/bin/perl" + +# Configure uses make and sun make is not happy +# with the shell command added by the t4 patch +EXTRA_CONFIGURE_ENV += MAKE="/opt/csw/bin/gmake" + +# The new compiler options taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ +# added "-z defs" to the linker options. That causes object compilation to fail because +# they are not linked against libc and libdl (for Sol9). This is workaround until I find a better fix. +EXTRA_LD_OPTIONS = -lc -ldl + +# By default, the install target put man pages under +# /opt/csw/ssl/man, but we want them under /opt/csw/share/man +EXTRA_INSTALL_ARGS += MANDIR=$(mandir) + +# library files are not automatically stripped +STRIP_DIRS = $(DESTDIR)/$(libdir) $(DESTDIR)/$(libdir)/openssl-$(SONAME)/engines/ + +TEST_TARGET = tests + +# We define a custom test script to be able to disable -j only for test execution +# as it doesn't work currently +TEST_SCRIPTS = custom + +include gar/category.mk + +# We remove SSE2 hardware capability in the elf header of libcrypto as +# openssl is able to select it at runtime and the Solaris OS support SSE2 since +# Solaris 9 4/04 (according to "Sun Studio 12: C++ User's Guide") +post-install: + if command -v elfedit >/dev/null 2>&1 && [ "$(GARCH)" = "i386" ] && \ + /usr/ccs/bin/dump -Lv "$(DESTDIR)/$(libdir)/libcrypto.so.$(SONAME)" | grep SUNW_CAP >/dev/null; then \ + echo " ==> Removing the SSE2 hardware capability from libcrypto"; \ + chmod +w "$(DESTDIR)/$(libdir)/libcrypto.so.$(SONAME)"; \ + elfedit -e 'cap:hw1 -and -cmp sse2' "$(DESTDIR)/$(libdir)/libcrypto.so.$(SONAME)"; \ + fi + @$(MAKECOOKIE) + +pre-configure-modulated: + echo " ==> Creating configure script" + cd $(WORKSRC) && ln -nf Configure configure + ln -nf $(WORKDIR)/map.openssl.libcrypto $(WORKSRC)/map.openssl.libcrypto + ln -nf $(WORKDIR)/map.openssl.libssl $(WORKSRC)/map.openssl.libssl + for ENGINE in $(ENGINES); do \ + ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/map.openssl.lib$$ENGINE; \ + done + ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/ccgost/map.openssl.libgost + @$(MAKECOOKIE) + +install-conf-misc: + [ ! -f "$(PKGROOT)$(sysconfdir)/ssl/openssl.cnf" ] || \ + mv "$(PKGROOT)$(sysconfdir)/ssl/openssl.cnf" $(PKGROOT)$(sysconfdir)/ssl/openssl.cnf.CSW + [ ! -d "$(PKGROOT)$(sysconfdir)/ssl/misc" ] || \ + ( ginstall -d "$(PKGROOT)/$(prefix)/ssl/" && mv "$(PKGROOT)$(sysconfdir)/ssl/misc/" "$(PKGROOT)/$(prefix)/ssl/" ) + +merge-doc: + for CATALOGNAME in $(foreach PKG, $(PACKAGES), $(call catalogname,$(PKG))); do \ + ginstall -d $(PKGROOT)/$(docdir)/$$CATALOGNAME; \ + (cd $(DOWNLOADDIR)/ && ginstall -m 0644 README.CSW changelog.CSW $(PKGROOT)/$(docdir)/$$CATALOGNAME/); \ + (cd $(WORKSRC_FIRSTMOD)/ && ginstall -m 0644 $(DOCFILES) $(PKGROOT)/$(docdir)/$$CATALOGNAME/); \ + done + +post-merge-all: merge-doc install-conf-misc + + +NUM_CPUS := $(shell psrinfo | wc -l | awk '{ print $$1 }') + +package-fast: + PARALLELMODULATIONS=1 PARALLELMFLAGS="-j" $(MAKE) package + #PARALLELMODULATIONS=1 PARALLELMFLAGS="--jobs=$(NUM_CPUS) --load-average=$(NUM_CPUS)" $(MAKE) package + +platforms-fast: + @mkdir -p work + @echo + @echo "Building on all hosts in parallel. Please see the individual logfiles for details:";$(foreach P,$(_PACKAGING_PLATFORMS),echo "- $P: work/build-$(PACKAGING_HOST_$P).log";) + @echo + @trap "cat $(foreach P,$(_PACKAGING_PLATFORMS),work/build-$(PACKAGING_HOST_$P).pid) 2>/dev/null | xargs -L 1 pkill -9 -P &>/dev/null; \ + stty sane" INT; \ + $(foreach P,$(_PACKAGING_PLATFORMS),\ + ( $(SSH) -t $(PACKAGING_HOST_$P) "$(foreach V,$(_PROPAGATE_ENV),$(if $($V),$V=\"$($V)\")) $(MAKE) -I $(GARDIR) -C $(CURDIR) $(_PASS_GAR_ENV) GAR_PLATFORM=$P package-fast" >work/build-$(PACKAGING_HOST_$P).log 2>&1; echo $$? >work/build-$(PACKAGING_HOST_$P).ret ) & \ + echo $$! >work/build-$(PACKAGING_HOST_$P).pid; ) wait; stty sane; trap - INT + @$(foreach P,$(_PACKAGING_PLATFORMS),if [ "`cat work/build-$(PACKAGING_HOST_$P).ret`" -ne 0 ]; then \ + FAILED=1; \ + echo "Build error on host $(PACKAGING_HOST_$P). For details, please see"; \ + echo " work/build-$(PACKAGING_HOST_$P).log"; \ + echo "Return code: `cat work/build-$(PACKAGING_HOST_$P).ret`"; \ + echo ; \ + fi;) if [ $${FAILED} -eq 1 ]; then \ + exit 2; \ + fi + @echo + @echo "Calling the standard platforms target to make sure everything is ok..." + @echo + $(MAKE) platforms + +# The only purpose of this script is to disable the gmake "-j" option for test execution +test-custom: + PARALLELMFLAGS= $(MAKE) test-$(WORKSRC)/Makefile Deleted: csw/mgar/pkg/openssl1/branches/openssl_101/checksums =================================================================== --- csw/mgar/pkg/openssl1/trunk/checksums 2015-10-14 22:26:32 UTC (rev 25293) +++ csw/mgar/pkg/openssl1/branches/openssl_101/checksums 2015-12-21 12:21:18 UTC (rev 25487) @@ -1 +0,0 @@ -7563e92327199e0067ccd0f79f436976 openssl-1.0.1p.tar.gz Copied: csw/mgar/pkg/openssl1/branches/openssl_101/checksums (from rev 25440, csw/mgar/pkg/openssl1/trunk/checksums) =================================================================== --- csw/mgar/pkg/openssl1/branches/openssl_101/checksums (rev 0) +++ csw/mgar/pkg/openssl1/branches/openssl_101/checksums 2015-12-21 12:21:18 UTC (rev 25487) @@ -0,0 +1 @@ +54538d0cdcb912f9bc2b36268388205e openssl-1.0.1q.tar.gz Deleted: csw/mgar/pkg/openssl1/branches/openssl_101/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-10-14 22:26:32 UTC (rev 25293) +++ csw/mgar/pkg/openssl1/branches/openssl_101/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-12-21 12:21:18 UTC (rev 25487) @@ -1,7826 +0,0 @@ -# This file adds inline T4 instruction support to OpenSSL upstream code. -# The change was brought in from OpenSSL 1.0.2. -# -Index: Configure -=================================================================== -diff -ru openssl-1.0.1e/Configure openssl-1.0.1e/Configure ---- openssl-1.0.1e/Configure 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/Configure 2011-07-27 10:48:17.817470000 -0700 -@@ -135,7 +135,7 @@ - - my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o:"; - my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void"; --my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; -+my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o:des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; - my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void"; - my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void"; - my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::"; -Index: crypto/sparccpuid.S -=================================================================== -diff -ru openssl-1.0.1e/crypto/sparccpuid.S openssl-1.0.1e/crypto/sparccpuid.S ---- openssl-1.0.1e/crypto/sparccpuid.S 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sparccpuid.S 2011-07-27 10:48:17.817470000 -0700 -@@ -1,3 +1,7 @@ -+#ifdef OPENSSL_FIPSCANISTER -+#include -+#endif -+ - #if defined(__SUNPRO_C) && defined(__sparcv9) - # define ABI64 /* They've said -xarch=v9 at command line */ - #elif defined(__GNUC__) && defined(__arch64__) -@@ -235,10 +239,10 @@ - .global _sparcv9_vis1_probe - .align 8 - _sparcv9_vis1_probe: -+ .word 0x81b00d80 !fxor %f0,%f0,%f0 - add %sp,BIAS+2,%o1 -- .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - retl -- .word 0x81b00d80 !fxor %f0,%f0,%f0 -+ .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - .type _sparcv9_vis1_probe,#function - .size _sparcv9_vis1_probe,.-_sparcv9_vis1_probe - -@@ -251,7 +255,12 @@ - ! UltraSPARC IIe 7 - ! UltraSPARC III 7 - ! UltraSPARC T1 24 -+! SPARC T4 65(*) - ! -+! (*) result has lesser to do with VIS instruction latencies, rdtick -+! appears that slow, but it does the trick in sense that FP and -+! VIS code paths are still slower than integer-only ones. -+! - ! Numbers for T2 and SPARC64 V-VII are more than welcomed. - ! - ! It would be possible to detect specifically US-T1 by instrumenting -@@ -260,6 +269,8 @@ - .global _sparcv9_vis1_instrument - .align 8 - _sparcv9_vis1_instrument: -+ .word 0x81b00d80 !fxor %f0,%f0,%f0 -+ .word 0x85b08d82 !fxor %f2,%f2,%f2 - .word 0x91410000 !rd %tick,%o0 - .word 0x81b00d80 !fxor %f0,%f0,%f0 - .word 0x85b08d82 !fxor %f2,%f2,%f2 -@@ -314,6 +325,30 @@ - .type _sparcv9_fmadd_probe,#function - .size _sparcv9_fmadd_probe,.-_sparcv9_fmadd_probe - -+.global _sparcv9_rdcfr -+.align 8 -+_sparcv9_rdcfr: -+ retl -+ .word 0x91468000 !rd %asr26,%o0 -+.type _sparcv9_rdcfr,#function -+.size _sparcv9_rdcfr,.-_sparcv9_rdcfr -+ -+.global _sparcv9_vis3_probe -+.align 8 -+_sparcv9_vis3_probe: -+ retl -+ .word 0x81b022a0 !xmulx %g0,%g0,%g0 -+.type _sparcv9_vis3_probe,#function -+.size _sparcv9_vis3_probe,.-_sparcv9_vis3_probe -+ -+.global _sparcv9_random -+.align 8 -+_sparcv9_random: -+ retl -+ .word 0x91b002a0 !random %o0 -+.type _sparcv9_random,#function -+.size _sparcv9_random,.-_sparcv9_vis3_probe -+ - .global OPENSSL_cleanse - .align 32 - OPENSSL_cleanse: -@@ -398,6 +433,102 @@ - .size OPENSSL_cleanse,.-OPENSSL_cleanse - - #ifndef _BOOT -+.global _sparcv9_vis1_instrument_bus -+.align 8 -+_sparcv9_vis1_instrument_bus: -+ mov %o1,%o3 ! save cnt -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ mov %o4,%o5 ! lasttick = tick -+ set 0,%g4 ! diff -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+.Loop: .word 0x99410000 !rd %tick,%o4 -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ subcc %o1,1,%o1 ! --$cnt -+ bnz .Loop -+ add %o0,4,%o0 ! ++$out -+ -+ retl -+ mov %o3,%o0 -+.type _sparcv9_vis1_instrument_bus,#function -+.size _sparcv9_vis1_instrument_bus,.-_sparcv9_vis1_instrument_bus -+ -+.global _sparcv9_vis1_instrument_bus2 -+.align 8 -+_sparcv9_vis1_instrument_bus2: -+ mov %o1,%o3 ! save cnt -+ sll %o1,2,%o1 ! cnt*=4 -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ mov %o4,%o5 ! lasttick = tick -+ set 0,%g4 ! diff -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ mov %g4,%g5 ! lastdiff=diff -+.Loop2: -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+ subcc %o2,1,%o2 ! --max -+ bz .Ldone2 -+ nop -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ cmp %g4,%g5 -+ mov %g4,%g5 ! lastdiff=diff -+ -+ .word 0x83408000 !rd %ccr,%g1 -+ and %g1,4,%g1 ! isolate zero flag -+ xor %g1,4,%g1 ! flip zero flag -+ -+ subcc %o1,%g1,%o1 ! conditional --$cnt -+ bnz .Loop2 -+ add %o0,%g1,%o0 ! conditional ++$out -+ -+.Ldone2: -+ srl %o1,2,%o1 -+ retl -+ sub %o3,%o1,%o0 -+.type _sparcv9_vis1_instrument_bus2,#function -+.size _sparcv9_vis1_instrument_bus2,.-_sparcv9_vis1_instrument_bus2 -+ - .section ".init",#alloc,#execinstr - call solaris_locking_setup - nop -Index: crypto/sparcv9cap.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/sparcv9cap.c openssl-1.0.1e/crypto/sparcv9cap.c ---- openssl-1.0.1e/crypto/sparcv9cap.c 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sparcv9cap.c 2011-07-27 10:48:17.817470000 -0700 -@@ -4,34 +4,58 @@ - #include - #include - #include -+#include - #include - --#define SPARCV9_TICK_PRIVILEGED (1<<0) --#define SPARCV9_PREFER_FPU (1<<1) --#define SPARCV9_VIS1 (1<<2) --#define SPARCV9_VIS2 (1<<3) /* reserved */ --#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ -+#include "sparc_arch.h" - -+#if defined(__GNUC__) && defined(__linux) -+__attribute__((visibility("hidden"))) -+#endif - #ifndef _BOOT --static int OPENSSL_sparcv9cap_P = SPARCV9_TICK_PRIVILEGED; -+unsigned int OPENSSL_sparcv9cap_P[2] = {SPARCV9_TICK_PRIVILEGED, 0}; - #else --static int OPENSSL_sparcv9cap_P = SPARCV9_VIS1; -+unsigned int OPENSSL_sparcv9cap_P[2] = {SPARCV9_VIS1, 0}; - #endif - - int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - const BN_ULONG *np, const BN_ULONG *n0, int num) - { -+ int bn_mul_mont_vis3(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, -+ const BN_ULONG *np,const BN_ULONG *n0, int num); - int bn_mul_mont_fpu(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - const BN_ULONG *np, const BN_ULONG *n0, int num); - int bn_mul_mont_int(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - const BN_ULONG *np, const BN_ULONG *n0, int num); - -- if (num >= 8 && !(num & 1) && -- (OPENSSL_sparcv9cap_P & (SPARCV9_PREFER_FPU | SPARCV9_VIS1)) == -- (SPARCV9_PREFER_FPU | SPARCV9_VIS1)) -- return bn_mul_mont_fpu(rp, ap, bp, np, n0, num); -- else -- return bn_mul_mont_int(rp, ap, bp, np, n0, num); -+ if (!(num&1) && num>=6) { -+ if ((num&15)==0 && num<=64 && -+ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== -+ (CFR_MONTMUL|CFR_MONTSQR)) -+ { -+ typedef int (*bn_mul_mont_f)(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_8(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_16(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_24(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_32(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ static const bn_mul_mont_f funcs[4] = { -+ bn_mul_mont_t4_8, bn_mul_mont_t4_16, -+ bn_mul_mont_t4_24, bn_mul_mont_t4_32 }; -+ bn_mul_mont_f worker = funcs[num/16-1]; -+ -+ if ((*worker)(rp,ap,bp,np,n0)) return 1; -+ /* retry once and fall back */ -+ if ((*worker)(rp,ap,bp,np,n0)) return 1; -+ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); -+ } -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3)) -+ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); -+ else if (num>=8 && -+ (OPENSSL_sparcv9cap_P[0]&(SPARCV9_PREFER_FPU|SPARCV9_VIS1)) == -+ (SPARCV9_PREFER_FPU|SPARCV9_VIS1)) -+ return bn_mul_mont_fpu(rp,ap,bp,np,n0,num); -+ } -+ return bn_mul_mont_int(rp,ap,bp,np,n0,num); - } - - unsigned long _sparcv9_rdtick(void); -@@ -39,11 +63,18 @@ - unsigned long _sparcv9_vis1_instrument(void); - void _sparcv9_vis2_probe(void); - void _sparcv9_fmadd_probe(void); -+unsigned long _sparcv9_rdcfr(void); -+void _sparcv9_vis3_probe(void); -+unsigned long _sparcv9_random(void); -+#ifndef _BOOT -+size_t _sparcv9_vis1_instrument_bus(unsigned int *,size_t); -+size_t _sparcv9_vis1_instrument_bus2(unsigned int *,size_t,size_t); -+#endif - - #ifndef _BOOT - unsigned long OPENSSL_rdtsc(void) - { -- if (OPENSSL_sparcv9cap_P & SPARCV9_TICK_PRIVILEGED) -+ if (OPENSSL_sparcv9cap_P[0] & SPARCV9_TICK_PRIVILEGED) - #if defined(__sun) && defined(__SVR4) - return gethrtime(); - #else -@@ -52,6 +83,24 @@ - else - return _sparcv9_rdtick(); - } -+ -+size_t OPENSSL_instrument_bus(unsigned int *out,size_t cnt) -+{ -+ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == -+ SPARCV9_BLK) -+ return _sparcv9_vis1_instrument_bus(out,cnt); -+ else -+ return 0; -+} -+ -+size_t OPENSSL_instrument_bus2(unsigned int *out,size_t cnt,size_t max) -+{ -+ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == -+ SPARCV9_BLK) -+ return _sparcv9_vis1_instrument_bus2(out,cnt,max); -+ else -+ return 0; -+} - #endif - - #if defined(_BOOT) -@@ -61,7 +110,7 @@ - */ - void OPENSSL_cpuid_setup(void) - { -- OPENSSL_sparcv9cap_P = SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_VIS1; - } - - #elif 0 && defined(__sun) && defined(__SVR4) -@@ -90,11 +139,11 @@ - if (!strcmp(name, "SUNW,UltraSPARC") || - /* covers II,III,IV */ - !strncmp(name, "SUNW,UltraSPARC-I", 17)) { -- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU | SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU | SPARCV9_VIS1; - - /* %tick is privileged only on UltraSPARC-I/II, but not IIe */ - if (name[14] != '\0' && name[17] != '\0' && name[18] != '\0') -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - - return DI_WALK_TERMINATE; - } -@@ -100,7 +149,7 @@ - } - /* This is expected to catch remaining UltraSPARCs, such as T1 */ - else if (!strncmp(name, "SUNW,UltraSPARC", 15)) { -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - - return DI_WALK_TERMINATE; - } -@@ -119,7 +168,7 @@ - trigger = 1; - - if ((e = getenv("OPENSSL_sparcv9cap"))) { -- OPENSSL_sparcv9cap_P = strtoul(e, NULL, 0); -+ OPENSSL_sparcv9cap_P[0] = strtoul(e, NULL, 0); - return; - } - -@@ -126,15 +175,15 @@ - if (sysinfo(SI_MACHINE, si, sizeof(si)) > 0) { - if (strcmp(si, "sun4v")) - /* FPU is preferred for all CPUs, but US-T1/2 */ -- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU; - } - - if (sysinfo(SI_ISALIST, si, sizeof(si)) > 0) { - if (strstr(si, "+vis")) -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; - if (strstr(si, "+vis2")) { -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - return; - } - } -@@ -204,12 +253,14 @@ - trigger = 1; - - if ((e = getenv("OPENSSL_sparcv9cap"))) { -- OPENSSL_sparcv9cap_P = strtoul(e, NULL, 0); -+ OPENSSL_sparcv9cap_P[0] = strtoul(e, NULL, 0); -+ if ((e = strchr(e, ':'))) -+ OPENSSL_sparcv9cap_P[1] = strtoul(e + 1, NULL, 0); - return; - } - - /* Initial value, fits UltraSPARC-I&II... */ -- OPENSSL_sparcv9cap_P = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; - - sigfillset(&all_masked); - sigdelset(&all_masked, SIGILL); -@@ -232,18 +283,18 @@ - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_rdtick(); -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - } - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_vis1_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; - /* detect UltraSPARC-Tx, see sparccpud.S for details... */ - if (_sparcv9_vis1_instrument() >= 12) -- OPENSSL_sparcv9cap_P &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); -+ OPENSSL_sparcv9cap_P[0] &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); - else { - _sparcv9_vis2_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; - } - } - -@@ -249,13 +300,50 @@ - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_fmadd_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_FMADD; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; - } - -+ /* -+ * VIS3 flag is tested independently from VIS1, unlike VIS2 that is, -+ * because VIS3 defines even integer instructions. -+ */ -+ if (sigsetjmp(common_jmp,1) == 0) { -+ _sparcv9_vis3_probe(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; -+ } -+ -+ if (sigsetjmp(common_jmp,1) == 0) { -+ (void)_sparcv9_random(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_RANDOM; -+ } -+ -+ /* -+ * In wait for better solution _sparcv9_rdcfr is masked by -+ * VIS3 flag, because it goes to uninterruptable endless -+ * loop on UltraSPARC II running Solaris. Things might be -+ * different on Linux... -+ */ -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && -+ sigsetjmp(common_jmp, 1) == 0) { -+ OPENSSL_sparcv9cap_P[1] = (unsigned int)_sparcv9_rdcfr(); -+ } -+ - sigaction(SIGBUS, &bus_oact, NULL); - sigaction(SIGILL, &ill_oact, NULL); - - sigprocmask(SIG_SETMASK, &oset, NULL); -+ -+ if (sizeof(size_t) == 8) -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; -+#ifdef __linux -+ else -+ { -+ int ret = syscall(340); -+ -+ if (ret >= 0 && ret & 1) -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; -+ } -+#endif - } - - #endif -Index: crypto/md5/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/md5/Makefile openssl-1.0.1e/crypto/md5/Makefile ---- openssl-1.0.1e/crypto/md5/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/md5/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -52,6 +52,9 @@ - $(CC) $(CFLAGS) -E asm/md5-ia64.S | \ - $(PERL) -ne 's/;\s+/;\n/g; print;' > $@ - -+md5-sparcv9.S: asm/md5-sparcv9.pl -+ $(PERL) asm/md5-sparcv9.pl $@ $(CFLAGS) -+ - files: - $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO - -Index: crypto/md5/md5_locl.h -=================================================================== -diff -ru openssl-1.0.1e/crypto/md5/md5_locl.h openssl-1.0.1e/crypto/md5/md5_locl.h ---- openssl-1.0.1e/crypto/md5/md5_locl.h 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/md5/md5_locl.h 2011-07-27 10:48:17.817470000 -0700 -@@ -71,6 +71,8 @@ - # define md5_block_data_order md5_block_asm_data_order - # elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64) - # define md5_block_data_order md5_block_asm_data_order -+# elif defined(__sparc) || defined(__sparc__) -+# define md5_block_data_order md5_block_asm_data_order - # endif - #endif - -Index: crypto/sha/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/Makefile openssl-1.0.1e/crypto/sha/Makefile ---- openssl-1.0.1e/crypto/sha/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -68,9 +68,9 @@ - sha1-x86_64.s: asm/sha1-x86_64.pl; $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@ - sha256-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ - sha512-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ --sha1-sparcv9.s: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) --sha256-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) --sha512-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) -+sha1-sparcv9.S: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) -+sha256-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) -+sha512-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) - - sha1-ppc.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $(PERLASM_SCHEME) $@ - sha256-ppc.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@ -Index: crypto/sha/asm/sha1-sparcv9.pl -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl ---- openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 -@@ -5,6 +5,8 @@ - # project. The module is, however, dual licensed under OpenSSL and - # CRYPTOGAMS licenses depending on where you obtain it. For further - # details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . - # ==================================================================== - - # Performance improvement is not really impressive on pre-T1 CPU: +8% -@@ -18,6 +20,11 @@ - # ensure scalability on UltraSPARC T1, or rather to avoid decay when - # amount of active threads exceeds the number of physical cores. - -+# SPARC T4 SHA1 hardware achieves 3.72 cycles per byte, which is 3.1x -+# faster than software. Multi-process benchmark saturates at 11x -+# single-process result on 8-core processor, or ~9GBps per 2.85GHz -+# socket. -+ - $bits=32; - for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } - if ($bits==64) { $bias=2047; $frame=192; } -@@ -183,11 +190,93 @@ - .register %g3,#scratch - ___ - $code.=<<___; -+#include "sparc_arch.h" -+ - .section ".text",#alloc,#execinstr - -+#ifdef __PIC__ -+SPARC_PIC_THUNK(%g1) -+#endif -+ - .align 32 - .globl sha1_block_data_order - sha1_block_data_order: -+ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) -+ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] -+ -+ andcc %g1, CFR_SHA1, %g0 -+ be .Lsoftware -+ nop -+ -+ ld [%o0 + 0x00], %f0 ! load context -+ ld [%o0 + 0x04], %f1 -+ ld [%o0 + 0x08], %f2 -+ andcc %o1, 0x7, %g0 -+ ld [%o0 + 0x0c], %f3 -+ bne,pn %icc, .Lhwunaligned -+ ld [%o0 + 0x10], %f4 -+ -+.Lhw_loop: -+ ldd [%o1 + 0x00], %f8 -+ ldd [%o1 + 0x08], %f10 -+ ldd [%o1 + 0x10], %f12 -+ ldd [%o1 + 0x18], %f14 -+ ldd [%o1 + 0x20], %f16 -+ ldd [%o1 + 0x28], %f18 -+ ldd [%o1 + 0x30], %f20 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x38], %f22 -+ add %o1, 0x40, %o1 -+ -+ .word 0x81b02820 ! SHA1 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhw_loop -+ nop -+ -+.Lhwfinish: -+ st %f0, [%o0 + 0x00] ! store context -+ st %f1, [%o0 + 0x04] -+ st %f2, [%o0 + 0x08] -+ st %f3, [%o0 + 0x0c] -+ retl -+ st %f4, [%o0 + 0x10] -+ -+.align 8 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f10 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f12 -+ ldd [%o1 + 0x10], %f14 -+ ldd [%o1 + 0x18], %f16 -+ ldd [%o1 + 0x20], %f18 -+ ldd [%o1 + 0x28], %f20 -+ ldd [%o1 + 0x30], %f22 -+ ldd [%o1 + 0x38], %f24 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x40], %f26 -+ add %o1, 0x40, %o1 -+ -+ faligndata %f10, %f12, %f8 -+ faligndata %f12, %f14, %f10 -+ faligndata %f14, %f16, %f12 -+ faligndata %f16, %f18, %f14 -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ -+ .word 0x81b02820 ! SHA1 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f26, %f26, %f10 ! %f10=%f26 -+ -+ ba .Lhwfinish -+ nop -+ -+.align 16 -+.Lsoftware: - save %sp,-$frame,%sp - sllx $len,6,$len - add $inp,$len,$len -@@ -279,6 +368,62 @@ - .align 4 - ___ - --$code =~ s/\`([^\`]*)\`/eval $1/gem; --print $code; -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my $ref,$opf; -+my %visopf = ( "faligndata" => 0x048, -+ "for" => 0x07c ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+sub unalignaddr { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my $ref="$mnemonic\t$rs1,$rs2,$rd"; -+ -+ foreach ($rs1,$rs2,$rd) { -+ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } -+ else { return $ref; } -+ } -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00300|$rd<<25|$rs1<<14|$rs2, -+ $ref; -+} -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/ge; -+ -+ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ -+ &unvis($1,$2,$3,$4) -+ /ge; -+ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ -+ &unalignaddr($1,$2,$3,$4) -+ /ge; -+ -+ print $_,"\n"; -+} -+ - close STDOUT; - -Index: crypto/sha/asm/sha512-sparcv9.pl -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl ---- openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 -@@ -5,6 +5,8 @@ - # project. The module is, however, dual licensed under OpenSSL and - # CRYPTOGAMS licenses depending on where you obtain it. For further - # details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . - # ==================================================================== - - # SHA256 performance improvement over compiler generated code varies -@@ -41,6 +43,12 @@ - # loads are always slower than one 64-bit load. Once again this - # is unlike pre-T1 UltraSPARC, where, if scheduled appropriately, - # 2x32-bit loads can be as fast as 1x64-bit ones. -+# -+# SPARC T4 SHA256/512 hardware achieves 3.17/2.01 cycles per byte, -+# which is 9.3x/11.1x faster than software. Multi-process benchmark -+# saturates at 11.5x single-process result on 8-core processor, or -+# ~11/16GBps per 2.85GHz socket. -+ - - $bits=32; - for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } -@@ -386,6 +394,8 @@ - .register %g3,#scratch - ___ - $code.=<<___; -+#include "sparc_arch.h" -+ - .section ".text",#alloc,#execinstr - - .align 64 -@@ -457,8 +467,196 @@ - } - $code.=<<___; - .size K${label},.-K${label} -+ -+#ifdef __PIC__ -+SPARC_PIC_THUNK(%g1) -+#endif -+ - .globl sha${label}_block_data_order -+.align 32 - sha${label}_block_data_order: -+ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) -+ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] -+ -+ andcc %g1, CFR_SHA${label}, %g0 -+ be .Lsoftware -+ nop -+___ -+$code.=<<___ if ($SZ==8); # SHA512 -+ ldd [%o0 + 0x00], %f0 ! load context -+ ldd [%o0 + 0x08], %f2 -+ ldd [%o0 + 0x10], %f4 -+ ldd [%o0 + 0x18], %f6 -+ ldd [%o0 + 0x20], %f8 -+ ldd [%o0 + 0x28], %f10 -+ andcc %o1, 0x7, %g0 -+ ldd [%o0 + 0x30], %f12 -+ bne,pn %icc, .Lhwunaligned -+ ldd [%o0 + 0x38], %f14 -+ -+.Lhwaligned_loop: -+ ldd [%o1 + 0x00], %f16 -+ ldd [%o1 + 0x08], %f18 -+ ldd [%o1 + 0x10], %f20 -+ ldd [%o1 + 0x18], %f22 -+ ldd [%o1 + 0x20], %f24 -+ ldd [%o1 + 0x28], %f26 -+ ldd [%o1 + 0x30], %f28 -+ ldd [%o1 + 0x38], %f30 -+ ldd [%o1 + 0x40], %f32 -+ ldd [%o1 + 0x48], %f34 -+ ldd [%o1 + 0x50], %f36 -+ ldd [%o1 + 0x58], %f38 -+ ldd [%o1 + 0x60], %f40 -+ ldd [%o1 + 0x68], %f42 -+ ldd [%o1 + 0x70], %f44 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x78], %f46 -+ add %o1, 0x80, %o1 -+ -+ .word 0x81b02860 ! SHA512 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwaligned_loop -+ nop -+ -+.Lhwfinish: -+ std %f0, [%o0 + 0x00] ! store context -+ std %f2, [%o0 + 0x08] -+ std %f4, [%o0 + 0x10] -+ std %f6, [%o0 + 0x18] -+ std %f8, [%o0 + 0x20] -+ std %f10, [%o0 + 0x28] -+ std %f12, [%o0 + 0x30] -+ retl -+ std %f14, [%o0 + 0x38] -+ -+.align 16 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f18 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f20 -+ ldd [%o1 + 0x10], %f22 -+ ldd [%o1 + 0x18], %f24 -+ ldd [%o1 + 0x20], %f26 -+ ldd [%o1 + 0x28], %f28 -+ ldd [%o1 + 0x30], %f30 -+ ldd [%o1 + 0x38], %f32 -+ ldd [%o1 + 0x40], %f34 -+ ldd [%o1 + 0x48], %f36 -+ ldd [%o1 + 0x50], %f38 -+ ldd [%o1 + 0x58], %f40 -+ ldd [%o1 + 0x60], %f42 -+ ldd [%o1 + 0x68], %f44 -+ ldd [%o1 + 0x70], %f46 -+ ldd [%o1 + 0x78], %f48 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x80], %f50 -+ add %o1, 0x80, %o1 -+ -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ faligndata %f26, %f28, %f24 -+ faligndata %f28, %f30, %f26 -+ faligndata %f30, %f32, %f28 -+ faligndata %f32, %f34, %f30 -+ faligndata %f34, %f36, %f32 -+ faligndata %f36, %f38, %f34 -+ faligndata %f38, %f40, %f36 -+ faligndata %f40, %f42, %f38 -+ faligndata %f42, %f44, %f40 -+ faligndata %f44, %f46, %f42 -+ faligndata %f46, %f48, %f44 -+ faligndata %f48, %f50, %f46 -+ -+ .word 0x81b02860 ! SHA512 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f50, %f50, %f18 ! %f18=%f50 -+ -+ ba .Lhwfinish -+ nop -+___ -+$code.=<<___ if ($SZ==4); # SHA256 -+ ld [%o0 + 0x00], %f0 -+ ld [%o0 + 0x04], %f1 -+ ld [%o0 + 0x08], %f2 -+ ld [%o0 + 0x0c], %f3 -+ ld [%o0 + 0x10], %f4 -+ ld [%o0 + 0x14], %f5 -+ andcc %o1, 0x7, %g0 -+ ld [%o0 + 0x18], %f6 -+ bne,pn %icc, .Lhwunaligned -+ ld [%o0 + 0x1c], %f7 -+ -+.Lhwloop: -+ ldd [%o1 + 0x00], %f8 -+ ldd [%o1 + 0x08], %f10 -+ ldd [%o1 + 0x10], %f12 -+ ldd [%o1 + 0x18], %f14 -+ ldd [%o1 + 0x20], %f16 -+ ldd [%o1 + 0x28], %f18 -+ ldd [%o1 + 0x30], %f20 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x38], %f22 -+ add %o1, 0x40, %o1 -+ -+ .word 0x81b02840 ! SHA256 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwloop -+ nop -+ -+.Lhwfinish: -+ st %f0, [%o0 + 0x00] ! store context -+ st %f1, [%o0 + 0x04] -+ st %f2, [%o0 + 0x08] -+ st %f3, [%o0 + 0x0c] -+ st %f4, [%o0 + 0x10] -+ st %f5, [%o0 + 0x14] -+ st %f6, [%o0 + 0x18] -+ retl -+ st %f7, [%o0 + 0x1c] -+ -+.align 8 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f10 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f12 -+ ldd [%o1 + 0x10], %f14 -+ ldd [%o1 + 0x18], %f16 -+ ldd [%o1 + 0x20], %f18 -+ ldd [%o1 + 0x28], %f20 -+ ldd [%o1 + 0x30], %f22 -+ ldd [%o1 + 0x38], %f24 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x40], %f26 -+ add %o1, 0x40, %o1 -+ -+ faligndata %f10, %f12, %f8 -+ faligndata %f12, %f14, %f10 -+ faligndata %f14, %f16, %f12 -+ faligndata %f16, %f18, %f14 -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ -+ .word 0x81b02840 ! SHA256 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f26, %f26, %f10 ! %f10=%f26 -+ -+ ba .Lhwfinish -+ nop -+___ -+$code.=<<___; -+.align 16 -+.Lsoftware: - save %sp,`-$frame-$locals`,%sp - and $inp,`$align-1`,$tmp31 - sllx $len,`log(16*$SZ)/log(2)`,$len -@@ -589,6 +787,62 @@ - .align 4 - ___ - --$code =~ s/\`([^\`]*)\`/eval $1/gem; --print $code; -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my $ref,$opf; -+my %visopf = ( "faligndata" => 0x048, -+ "for" => 0x07c ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+sub unalignaddr { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my $ref="$mnemonic\t$rs1,$rs2,$rd"; -+ -+ foreach ($rs1,$rs2,$rd) { -+ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } -+ else { return $ref; } -+ } -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00300|$rd<<25|$rs1<<14|$rs2, -+ $ref; -+} -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/ge; -+ -+ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ -+ &unvis($1,$2,$3,$4) -+ /ge; -+ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ -+ &unalignaddr($1,$2,$3,$4) -+ /ge; -+ -+ print $_,"\n"; -+} -+ - close STDOUT; -Index: crypto/des/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/des/Makefile.orig openssl-1.0.1e/crypto/des/Makefile ---- a/crypto/des/Makefile -+++ b/crypto/des/Makefile -@@ -61,6 +61,8 @@ des: des.o cbc3_enc.o lib - - des_enc-sparc.S: asm/des_enc.m4 - m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S -+dest4-sparcv9.s: asm/dest4-sparcv9.pl -+ $(PERL) asm/dest4-sparcv9.pl $(CFLAGS) > $@ - - des-586.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl - $(PERL) asm/des-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@ -Index: crypto/evp/e_des.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/evp/e_des.c.orig openssl-1.0.1e/crypto/evp/e_des.c ---- a/crypto/evp/e_des.c -+++ b/crypto/evp/e_des.c -@@ -65,6 +65,30 @@ - # include - # include - -+typedef struct { -+ union { double align; DES_key_schedule ks; } ks; -+ union { -+ void (*cbc)(const void *,void *,size_t,const void *,void *); -+ } stream; -+} EVP_DES_KEY; -+ -+#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+/* ---------^^^ this is not a typo, just a way to detect that -+ * assembler support was in general requested... -+ */ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) -+ -+void des_t4_key_expand(const void *key, DES_key_schedule *ks); -+void des_t4_cbc_encrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+void des_t4_cbc_decrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+#endif -+ - static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc); - static int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); -@@ -102,6 +126,12 @@ static int des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl) - { -+ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; -+ -+ if (dat->stream.cbc) { -+ (*dat->stream.cbc)(in,out,inl,&dat->ks.ks,ctx->iv); -+ return 1; -+ } - while (inl >= EVP_MAXCHUNK) { - DES_ncbc_encrypt(in, out, (long)EVP_MAXCHUNK, ctx->cipher_data, - (DES_cblock *)ctx->iv, ctx->encrypt); -@@ -179,16 +209,16 @@ - return 1; - } - --BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64, -+BLOCK_CIPHER_defs(des, EVP_DES_KEY, NID_des, 8, 8, 8, 64, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) - - --BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 1, -+BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 1, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) - --BLOCK_CIPHER_def_cfb(des, DES_key_schedule, NID_des, 8, 8, 8, -+BLOCK_CIPHER_def_cfb(des, EVP_DES_KEY, NID_des, 8, 8, 8, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des_ctrl) - -@@ -196,8 +226,23 @@ static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(key,&dat->ks.ks); -+ dat->stream.cbc = enc ? des_t4_cbc_encrypt : -+ des_t4_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(deskey, ctx->cipher_data) != 0) -+ if (DES_set_key_checked(deskey, dat->ks.ks) != 0) - return 0; - # else - DES_set_key_unchecked(deskey, ctx->cipher_data); -Index: crypto/evp/e_des3.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/evp/e_des3.c.orig openssl-1.0.1e/crypto/evp/e_des3.c ---- a/crypto/evp/e_des3.c -+++ b/crypto/evp/e_des3.c -@@ -65,6 +65,32 @@ - # include - # include - -+typedef struct { -+ union { double align; DES_key_schedule ks[3]; } ks; -+ union { -+ void (*cbc)(const void *,void *,size_t,const void *,void *); -+ } stream; -+} DES_EDE_KEY; -+#define ks1 ks.ks[0] -+#define ks2 ks.ks[1] -+#define ks3 ks.ks[2] -+ -+#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+/* ---------^^^ this is not a typo, just a way to detect that -+ * assembler support was in general requested... */ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) -+ -+void des_t4_key_expand(const void *key, DES_key_schedule *ks); -+void des_t4_ede3_cbc_encrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+void des_t4_ede3_cbc_decrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+#endif -+ - # ifndef OPENSSL_FIPS - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -@@ -75,12 +100,6 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - - static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); - --typedef struct { -- DES_key_schedule ks1; /* key schedule */ -- DES_key_schedule ks2; /* key schedule (for ede) */ -- DES_key_schedule ks3; /* key schedule (for ede3) */ --} DES_EDE_KEY; -- - # define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data) - - /* -@@ -123,6 +117,7 @@ static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl) - { -+ DES_EDE_KEY *dat = data(ctx); - # ifdef KSSL_DEBUG - { - int i; -@@ -134,11 +155,15 @@ - fprintf(stderr, "\n"); - } - # endif /* KSSL_DEBUG */ -+ if (dat->stream.cbc) { -+ (*dat->stream.cbc)(in,out,inl,&dat->ks,ctx->iv); -+ return 1; -+ } -+ - while (inl >= EVP_MAXCHUNK) { - DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, -- &data(ctx)->ks1, &data(ctx)->ks2, -- &data(ctx)->ks3, (DES_cblock *)ctx->iv, -- ctx->encrypt); -+ &dat->ks1, &dat->ks2, &dat->ks3, -+ (DES_cblock *)ctx->iv, ctx->encrypt); - inl -= EVP_MAXCHUNK; - in += EVP_MAXCHUNK; - out += EVP_MAXCHUNK; -@@ -145,9 +170,8 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - if (inl) - DES_ede3_cbc_encrypt(in, out, (long)inl, -- &data(ctx)->ks1, &data(ctx)->ks2, -- &data(ctx)->ks3, (DES_cblock *)ctx->iv, -- ctx->encrypt); -+ &dat->ks1, &dat->ks2, &dat->ks3, -+ (DES_cblock *)ctx->iv, ctx->encrypt); - return 1; - } - -@@ -215,39 +239,58 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - - BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede_init_key, NULL, NULL, NULL, -+ des3_ctrl) - # define des_ede3_cfb64_cipher des_ede_cfb64_cipher - # define des_ede3_ofb_cipher des_ede_ofb_cipher - # define des_ede3_cbc_cipher des_ede_cbc_cipher - # define des_ede3_ecb_cipher des_ede_ecb_cipher - BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 1, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3, DES_EDE_KEY, NID_des_ede3, 24, 8, 8, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) -- ! !DES_set_key_checked(&deskey[1], &data(ctx)->ks2)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ !! DES_set_key_checked(&deskey[1],&dat->ks2)) - return 0; - # else -- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); - # endif -- memcpy(&data(ctx)->ks3, &data(ctx)->ks1, sizeof(data(ctx)->ks1)); -+ memcpy(&dat->ks3,&dat->ks1, sizeof(dat->ks1)); - return 1; - } - -@@ -255,6 +298,8 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ - # ifdef KSSL_DEBUG - { - int i; -@@ -272,15 +317,30 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - } - # endif /* KSSL_DEBUG */ - -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ des_t4_key_expand(&deskey[2],&dat->ks3); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - # ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0], &data(ctx)->ks1) -- || DES_set_key_checked(&deskey[1], &data(ctx)->ks2) -- || DES_set_key_checked(&deskey[2], &data(ctx)->ks3)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ || DES_set_key_checked(&deskey[1],&dat->ks2) -+ || DES_set_key_checked(&deskey[2],&dat->ks3)) - return 0; - # else -- DES_set_key_unchecked(&deskey[0], &data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1], &data(ctx)->ks2); -- DES_set_key_unchecked(&deskey[2], &data(ctx)->ks3); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); -+ DES_set_key_unchecked(&deskey[2],&dat->ks3); - # endif - return 1; - } -Index: openssl/crypto/bn/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/bn/Makefile openssl-1.0.1e/crypto/bn/Makefile.new ---- openssl-1.0.1e/crypto/bn/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/bn/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -77,6 +77,12 @@ - $(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@ - sparcv9-mont.s: asm/sparcv9-mont.pl - $(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@ -+vis3-mont.s: asm/vis3-mont.pl -+ $(PERL) asm/vis3-mont.pl $(CFLAGS) > $@ -+sparct4-mont.S: asm/sparct4-mont.pl -+ $(PERL) asm/sparct4-mont.pl $(CFLAGS) > $@ -+sparcv9-gf2m.S: asm/sparcv9-gf2m.pl -+ $(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) > $@ - - bn-mips3.o: asm/mips3.s - @if [ "$(CC)" = "gcc" ]; then \ -Index: openssl/crypto/bn/bn_exp.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/bn/bn_exp.c openssl-1.0.1e/crypto/bn/bn_exp.c.new ---- bn_exp.c 2011/10/29 19:25:13 1.38 -+++ bn_exp.c 2012/11/17 10:34:11 1.39 -@@ -122,8 +122,15 @@ - # ifndef alloca - # define alloca(s) __builtin_alloca((s)) - # endif -+#else -+#include - #endif - -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+# include "sparc_arch.h" -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+#endif -+ - /* maximum precomputation table size for *variable* sliding windows */ - #define TABLE_SIZE 32 - -@@ -464,8 +471,16 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - wstart = bits - 1; /* The top bit of the window */ - wend = 0; /* The bottom bit of the window */ - -+#if 1 /* by Shay Gueron's suggestion */ -+ j = mont->N.top; /* borrow j */ -+ if (bn_wexpand(r,j) == NULL) goto err; -+ r->d[0] = (0-m->d[0])&BN_MASK2; /* 2^(top*BN_BITS2) - m */ -+ for(i=1;id[i] = (~m->d[i])&BN_MASK2; -+ r->top = j; -+#else - if (!BN_to_montgomery(r, BN_value_one(), mont, ctx)) - goto err; -+#endif - for (;;) { - if (BN_is_bit_set(p, wstart) == 0) { - if (!start) { -@@ -515,6 +530,17 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - if (wstart < 0) - break; - } -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+ if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3|SPARCV9_PREFER_FPU)) { -+ j = mont->N.top; /* borrow j */ -+ val[0]->d[0] = 1; /* borrow val[0] */ -+ for (i=1;id[i] = 0; -+ val[0]->top = j; -+ if (!BN_mod_mul_montgomery(rr, r, val[0], mont, ctx)) -+ goto err; -+ } else -+#endif - if (!BN_from_montgomery(rr, r, mont, ctx)) - goto err; - ret = 1; -@@ -526,6 +552,26 @@ err: - return (ret); - } - -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+static BN_ULONG bn_get_bits(const BIGNUM *a, int bitpos) { -+ BN_ULONG ret = 0; -+ int wordpos; -+ -+ wordpos = bitpos / BN_BITS2; -+ bitpos %= BN_BITS2; -+ if (wordpos>=0 && wordpos < a->top) { -+ ret = a->d[wordpos]&BN_MASK2; -+ if (bitpos) { -+ ret >>= bitpos; -+ if (++wordpos < a->top) -+ ret |= a->d[wordpos]<<(BN_BITS2-bitpos); -+ } -+ } -+ -+ return ret & BN_MASK2; -+} -+#endif -+ - /* - * BN_mod_exp_mont_consttime() stores the precomputed powers in a specific - * layout so that accessing any of these table values shows the same access -@@ -594,6 +640,9 @@ - int powerbufLen = 0; - unsigned char *powerbuf = NULL; - BIGNUM tmp, am; -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ unsigned int t4=0; -+#endif - - bn_check_top(a); - bn_check_top(p); -@@ -628,10 +677,18 @@ - - /* Get the window size to use with size of p. */ - window = BN_window_bits_for_ctime_exponent_size(bits); -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ if (window>=5 && (top&15)==0 && top<=64 && -+ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== -+ (CFR_MONTMUL|CFR_MONTSQR) && (t4=OPENSSL_sparcv9cap_P[0])) -+ window=5; -+ else -+#endif - #if defined(OPENSSL_BN_ASM_MONT5) - if (window == 6 && bits <= 1024) - window = 5; /* ~5% improvement of 2048-bit RSA sign */ - #endif -+ (void) 0; - - /* - * Allocate a buffer large enough to hold all of the pre-computed powers -@@ -670,14 +727,14 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - tmp.flags = am.flags = BN_FLG_STATIC_DATA; - - /* prepare a^0 in Montgomery domain */ --#if 1 -- if (!BN_to_montgomery(&tmp, BN_value_one(), mont, ctx)) -- goto err; --#else -+#if 1 /* by Shay Gueron's suggestion */ - tmp.d[0] = (0 - m->d[0]) & BN_MASK2; /* 2^(top*BN_BITS2) - m */ - for (i = 1; i < top; i++) - tmp.d[i] = (~m->d[i]) & BN_MASK2; - tmp.top = top; -+#else -+ if (!BN_to_montgomery(&tmp,BN_value_one(),mont,ctx)) -+ goto err; - #endif - - /* prepare a^1 in Montgomery domain */ -@@ -689,6 +746,122 @@ - } else if (!BN_to_montgomery(&am, a, mont, ctx)) - goto err; - -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ if (t4) { -+ typedef int (*bn_pwr5_mont_f)(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_8(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_16(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_24(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ int bn_pwr5_mont_t4_32(BN_ULONG *tp,const BN_ULONG *np, -+ const BN_ULONG *n0,const void *table,int power,int bits); -+ static const bn_pwr5_mont_f pwr5_funcs[4] = { -+ bn_pwr5_mont_t4_8, bn_pwr5_mont_t4_16, -+ bn_pwr5_mont_t4_24, bn_pwr5_mont_t4_32 }; -+ bn_pwr5_mont_f pwr5_worker = pwr5_funcs[top/16-1]; -+ -+ typedef int (*bn_mul_mont_f)(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_8(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_16(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_24(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_32(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np,const BN_ULONG *n0); -+ static const bn_mul_mont_f mul_funcs[4] = { -+ bn_mul_mont_t4_8, bn_mul_mont_t4_16, -+ bn_mul_mont_t4_24, bn_mul_mont_t4_32 }; -+ bn_mul_mont_f mul_worker = mul_funcs[top/16-1]; -+ -+ void bn_mul_mont_vis3(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np, -+ const BN_ULONG *n0,int num); -+ void bn_mul_mont_t4(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *bp,const BN_ULONG *np, -+ const BN_ULONG *n0,int num); -+ void bn_mul_mont_gather5_t4(BN_ULONG *rp,const BN_ULONG *ap, -+ const void *table,const BN_ULONG *np, -+ const BN_ULONG *n0,int num,int power); -+ void bn_flip_n_scatter5_t4(const BN_ULONG *inp,size_t num, -+ void *table,size_t power); -+ void bn_gather5_t4(BN_ULONG *out,size_t num, -+ void *table,size_t power); -+ void bn_flip_t4(BN_ULONG *dst,BN_ULONG *src,size_t num); -+ -+ BN_ULONG *np=mont->N.d, *n0=mont->n0; -+ int stride = 5*(6-(top/16-1)); /* multiple of 5, but less than 32 */ -+ -+ /* -+ * BN_to_montgomery can contaminate words above .top -+ * [in BN_DEBUG[_DEBUG] build]... -+ */ -+ for (i=am.top; iN.d,top); -+ -+ bits--; -+ for (wvalue=0, i=bits%5; i>=0; i--,bits--) -+ wvalue = (wvalue<<1)+BN_is_bit_set(p,bits); -+ bn_gather5_t4(tmp.d,top,powerbuf,wvalue); -+ -+ /* Scan the exponent one window at a time starting from the most -+ * significant bits. -+ */ -+ while (bits >= 0) { -+ if (bits < stride) -+ stride = bits+1; -+ bits -= stride; -+ wvalue = (bn_get_bits(p,bits+1)); -+ -+ if ((*pwr5_worker)(tmp.d,np,n0,powerbuf,wvalue,stride)) -+ continue; -+ /* retry once and fall back */ -+ if ((*pwr5_worker)(tmp.d,np,n0,powerbuf,wvalue,stride)) -+ continue; -+ -+ bits += stride-5; -+ wvalue >>= stride-5; -+ wvalue &= 31; -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_t4(tmp.d,tmp.d,tmp.d,np,n0,top); -+ bn_mul_mont_gather5_t4(tmp.d,tmp.d,powerbuf,np,n0,top,wvalue); -+ } -+ -+ bn_flip_t4(tmp.d,tmp.d,top); -+ top *= 2; -+ /* back to 32-bit domain */ -+ tmp.top=top; -+ bn_correct_top(&tmp); -+ OPENSSL_cleanse(np,top*sizeof(BN_ULONG)); -+ } else -+#endif - #if defined(OPENSSL_BN_ASM_MONT5) - if (window == 5 && top > 1) { - /* -@@ -844,6 +1017,15 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - } - - /* Convert the final result from montgomery to standard format */ -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+ if (OPENSSL_sparcv9cap_P[0] & (SPARCV9_VIS3|SPARCV9_PREFER_FPU)) { -+ am.d[0] = 1; /* borrow am */ -+ for (i = 1; i < top; i++) -+ am.d[i] = 0; -+ if (!BN_mod_mul_montgomery(rr,&tmp,&am,mont,ctx)) -+ goto err; -+ } else -+#endif - if (!BN_from_montgomery(rr, &tmp, mont, ctx)) - goto err; - ret = 1; -Index: openssl/apps/speed.c -=================================================================== -diff -ru openssl-1.0.1e/apps/spped.c openssl-1.0.1e/apps/speed.c ---- openssl-1.0.1e/apps/speed.c 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/apps/spped.c 2011-07-27 10:48:17.817470000 -0700 -@@ -1586,8 +1586,7 @@ - print_message(names[D_MD5], c[D_MD5][j], lengths[j]); - Time_F(START); - for (count = 0, run = 1; COND(c[D_MD5][j]); count++) -- EVP_Digest(&(buf[0]), (unsigned long)lengths[j], &(md5[0]), -- NULL, EVP_get_digestbyname("md5"), NULL); -+ MD5(buf, lengths[j], md5); - d = Time_F(STOP); - print_result(D_MD5, j, count, d); - } -@@ -1622,8 +1621,7 @@ - print_message(names[D_SHA1], c[D_SHA1][j], lengths[j]); - Time_F(START); - for (count = 0, run = 1; COND(c[D_SHA1][j]); count++) -- EVP_Digest(buf, (unsigned long)lengths[j], &(sha[0]), NULL, -- EVP_sha1(), NULL); -+ SHA1(buf, lengths[j], sha); - d = Time_F(STOP); - print_result(D_SHA1, j, count, d); - } -Index: openssl/crypto/aes/Makefile -=================================================================== ---- Makefile Thu May 2 13:42:37 2013 -+++ Makefile.orig Thu May 2 13:41:51 2013 -@@ -69,6 +69,9 @@ - aes-sparcv9.s: asm/aes-sparcv9.pl - $(PERL) asm/aes-sparcv9.pl $(CFLAGS) > $@ - -+aest4-sparcv9.s: asm/aest4-sparcv9.pl -+ $(PERL) asm/aest4-sparcv9.pl $(CFLAGS) > $@ -+ - aes-ppc.s: asm/aes-ppc.pl - $(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@ - -Index: openssl/crypto/evp/e_aes.c -=================================================================== ---- e_aes.c Mon Feb 11 07:26:04 2013 -+++ e_aes.c.56 Thu May 2 14:26:35 2013 -@@ -56,12 +58,11 @@ - # include - # include - # include "evp_locl.h" --# ifndef OPENSSL_FIPS - # include "modes_lcl.h" - # include - - typedef struct { -- AES_KEY ks; -+ union { double align; AES_KEY ks; } ks; - block128_f block; - union { - cbc128_f cbc; -@@ -70,7 +69,7 @@ - } EVP_AES_KEY; - - typedef struct { -- AES_KEY ks; /* AES key schedule to use */ -+ union { double align; AES_KEY ks; } ks; /* AES key schedule to use */ - int key_set; /* Set if key initialised */ - int iv_set; /* Set if an iv is set */ - GCM128_CONTEXT gcm; -@@ -83,7 +82,7 @@ - } EVP_AES_GCM_CTX; - - typedef struct { -- AES_KEY ks1, ks2; /* AES key schedules to use */ -+ union { double align; AES_KEY ks; } ks1, ks2; /* AES key schedules to use */ - XTS128_CONTEXT xts; - void (*stream) (const unsigned char *in, - unsigned char *out, size_t length, -@@ -92,7 +91,7 @@ - } EVP_AES_XTS_CTX; - - typedef struct { -- AES_KEY ks; /* AES key schedule to use */ -+ union { double align; AES_KEY ks; } ks; /* AES key schedule to use */ - int key_set; /* Set if key initialised */ - int iv_set; /* Set if an iv is set */ - int tag_set; /* Set if tag is valid */ -@@ -155,7 +154,7 @@ - defined(_M_AMD64) || defined(_M_X64) || \ - defined(__INTEL__) ) - --extern unsigned int OPENSSL_ia32cap_P[2]; -+extern unsigned int OPENSSL_ia32cap_P[]; - - # ifdef VPAES_ASM - # define VPAES_CAPABLE (OPENSSL_ia32cap_P[1]&(1<<(41-32))) -@@ -297,7 +296,7 @@ - if (!iv && !key) - return 1; - if (key) { -- aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); -+ aesni_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks.ks); - CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f) aesni_encrypt); - gctx->ctr = (ctr128_f) aesni_ctr32_encrypt_blocks; - /* -@@ -336,17 +335,17 @@ - if (key) { - /* key_len is two AES keys */ - if (enc) { -- aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ aesni_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) aesni_encrypt; - xctx->stream = aesni_xts_encrypt; - } else { -- aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1); -+ aesni_set_decrypt_key(key, ctx->key_len * 4, &xctx->ks1.ks); - xctx->xts.block1 = (block128_f) aesni_decrypt; - xctx->stream = aesni_xts_decrypt; - } - - aesni_set_encrypt_key(key + ctx->key_len / 2, -- ctx->key_len * 4, &xctx->ks2); -+ ctx->key_len * 4, &xctx->ks2.ks); - xctx->xts.block2 = (block128_f) aesni_encrypt; - - xctx->xts.key1 = &xctx->ks1; -@@ -371,7 +370,7 @@ - if (!iv && !key) - return 1; - if (key) { -- aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks); -+ aesni_set_encrypt_key(key, ctx->key_len * 8, &cctx->ks.ks); - CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, - &cctx->ks, (block128_f) aesni_encrypt); - cctx->str = enc ? (ccm128_f) aesni_ccm64_encrypt_blocks : -@@ -432,6 +431,364 @@ - const EVP_CIPHER *EVP_aes_##keylen##_##mode(void) \ - { return AESNI_CAPABLE?&aesni_##keylen##_##mode:&aes_##keylen##_##mode; } - -+#elif defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_AES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_AES) -+ -+void aes_t4_set_encrypt_key (const unsigned char *key, int bits, -+ AES_KEY *ks); -+void aes_t4_set_decrypt_key (const unsigned char *key, int bits, -+ AES_KEY *ks); -+void aes_t4_encrypt (const unsigned char *in, unsigned char *out, -+ const AES_KEY *key); -+void aes_t4_decrypt (const unsigned char *in, unsigned char *out, -+ const AES_KEY *key); -+/* -+ * Key-length specific subroutines were chosen for following reason. -+ * Each SPARC T4 core can execute up to 8 threads which share core's -+ * resources. Loading as much key material to registers allows to -+ * minimize references to shared memory interface, as well as amount -+ * of instructions in inner loops [much needed on T4]. But then having -+ * non-key-length specific routines would require conditional branches -+ * either in inner loops or on subroutines' entries. Former is hardly -+ * acceptable, while latter means code size increase to size occupied -+ * by multiple key-length specfic subroutines, so why fight? -+ */ -+void aes128_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes128_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes192_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes192_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes256_t4_cbc_encrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes256_t4_cbc_decrypt (const unsigned char *in, unsigned char *out, -+ size_t len, const AES_KEY *key, -+ unsigned char *ivec); -+void aes128_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, -+ size_t blocks, const AES_KEY *key, -+ unsigned char *ivec); -+void aes192_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, -+ size_t blocks, const AES_KEY *key, -+ unsigned char *ivec); -+void aes256_t4_ctr32_encrypt (const unsigned char *in, unsigned char *out, -+ size_t blocks, const AES_KEY *key, -+ unsigned char *ivec); -+ -+static int aes_t4_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -+ const unsigned char *iv, int enc) -+{ -+ int ret, mode, bits; -+ EVP_AES_KEY *dat = (EVP_AES_KEY *)ctx->cipher_data; -+ -+ mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ bits = ctx->key_len*8; -+ if ((mode == EVP_CIPH_ECB_MODE || mode == EVP_CIPH_CBC_MODE) && !enc) { -+ ret = 0; -+ aes_t4_set_decrypt_key(key, bits, ctx->cipher_data); -+ dat->block = (block128_f)aes_t4_decrypt; -+ switch (bits) { -+ case 128: -+ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? -+ (cbc128_f)aes128_t4_cbc_decrypt : -+ NULL; -+ break; -+ case 192: -+ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? -+ (cbc128_f)aes192_t4_cbc_decrypt : -+ NULL; -+ break; -+ case 256: -+ dat->stream.cbc = mode==EVP_CIPH_CBC_MODE ? -+ (cbc128_f)aes256_t4_cbc_decrypt : -+ NULL; -+ break; -+ default: -+ ret = -1; -+ } -+ } else { -+ ret = 0; @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Mon Dec 21 23:03:27 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Mon, 21 Dec 2015 22:03:27 +0000 Subject: SF.net SVN: gar:[25488] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pPZZ76ftHz10F@mail.opencsw.org> Revision: 25488 http://sourceforge.net/p/gar/code/25488 Author: claudio_sf Date: 2015-12-21 22:03:27 +0000 (Mon, 21 Dec 2015) Log Message: ----------- perl5/trunk: customized install_script Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 12:21:18 UTC (rev 25487) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 22:03:27 UTC (rev 25488) @@ -50,8 +50,8 @@ CONFIGURE_ARGS += -Dman3ext=3perl$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dperladmin="root at localhost" CONFIGURE_ARGS += -Dprefix=$(prefix) -CONFIGURE_ARGS += -Dbin=$(prefix)/$(NAME) -CONFIGURE_ARGS += -Dscriptdir=$(prefix)/$(NAME) +CONFIGURE_ARGS += -Dbin=$(bindir) +CONFIGURE_ARGS += -Dscriptdir=$(prefix)/$(bindir)/perl5scripts CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) @@ -78,8 +78,9 @@ # We want 64 bit binaries MERGE_DIRS_isa-extra = $(bindir) $(sbindir) $(libdir) $(libexecdir) -BUILD_SCRIPTS = perl -TEST_SCRIPTS = perl +BUILD_SCRIPTS = perl +TEST_SCRIPTS = perl +INSTALL_SCRIPTS = perl # Get it built RUNTIME_DEP_PKGS_CSWperl5 += CSWlibgcc-s1 @@ -97,6 +98,8 @@ # Configure PATH:=/opt/csw/gnu:$(PATH) +PERLNAME=perl5 +PERLNAME_VERBASE=perl configure-perl: CONFIGURE_EXPORTS = PATH LD_OPTIONS configure-perl: (cd $(WORKSRC) ; $(CONFIGURE_ENV) ./Configure $(CONFIGURE_ARGS) -ders) @@ -127,3 +130,9 @@ # http://sourceforge.net/apps/trac/gar/ticket/78 cd $(WORKSRC) && PWD=`pwd` $(MAKE) $(MAKE_OPT) test @$(MAKECOOKIE) + + +install-perl: INSTALL_EXPORTS = PATH LD_OPTIONS +install-perl: + (cd $(WORKSRC) ; $(INSTALL_ENV) $(MAKE) $(MAKE_OPT) install PERLNAME=perl5 PERLNAME_VERBASE=perl) + @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Mon Dec 21 23:09:32 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Mon, 21 Dec 2015 22:09:32 +0000 Subject: SF.net SVN: gar:[25489] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pPZj15mtpz12g@mail.opencsw.org> Revision: 25489 http://sourceforge.net/p/gar/code/25489 Author: claudio_sf Date: 2015-12-21 22:09:32 +0000 (Mon, 21 Dec 2015) Log Message: ----------- perl5/trunk: customized install_script Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 22:03:27 UTC (rev 25488) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 22:09:32 UTC (rev 25489) @@ -98,8 +98,6 @@ # Configure PATH:=/opt/csw/gnu:$(PATH) -PERLNAME=perl5 -PERLNAME_VERBASE=perl configure-perl: CONFIGURE_EXPORTS = PATH LD_OPTIONS configure-perl: (cd $(WORKSRC) ; $(CONFIGURE_ENV) ./Configure $(CONFIGURE_ARGS) -ders) @@ -132,7 +130,7 @@ @$(MAKECOOKIE) -install-perl: INSTALL_EXPORTS = PATH LD_OPTIONS +install-perl: INSTALL_EXPORTS = PATH LD_OPTIONS DESTDIR install-perl: (cd $(WORKSRC) ; $(INSTALL_ENV) $(MAKE) $(MAKE_OPT) install PERLNAME=perl5 PERLNAME_VERBASE=perl) @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Mon Dec 21 23:27:52 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Mon, 21 Dec 2015 22:27:52 +0000 Subject: SF.net SVN: gar:[25490] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pPb6B25DNz15P@mail.opencsw.org> Revision: 25490 http://sourceforge.net/p/gar/code/25490 Author: claudio_sf Date: 2015-12-21 22:27:52 +0000 (Mon, 21 Dec 2015) Log Message: ----------- perl5/trunk: customized install_script Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 22:09:32 UTC (rev 25489) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 22:27:52 UTC (rev 25490) @@ -20,7 +20,7 @@ MASTER_SITES = http://www.cpan.org/src/5.0/ VENDOR_URL = http://www.perl.org DISTFILES = perl-$(VERSION_FULL).tar.bz2 -PACKAGING_PLATFORMS += solaris10-i386 solaris10-sparc +PACKAGING_PLATFORMS += solaris10-i386 PACKAGES = CSWperl5 PKG_DESC_CSWperl = $(DESCRIPTION) SPKG_DESC_CSWperl = $(DESCRIPTION) @@ -51,7 +51,7 @@ CONFIGURE_ARGS += -Dperladmin="root at localhost" CONFIGURE_ARGS += -Dprefix=$(prefix) CONFIGURE_ARGS += -Dbin=$(bindir) -CONFIGURE_ARGS += -Dscriptdir=$(prefix)/$(bindir)/perl5scripts +CONFIGURE_ARGS += -Dscriptdir=$(bindir)/perl5 CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) @@ -91,7 +91,7 @@ #RUNTIME_DEP_PKGS_CSWperl5 += CSWperl CHECKPKG_OVERRIDES_CSWperl5 += missing-dependency|CSWperl # weird .nfs* file leftover -CHECKPKG_OVERRIDES_CSWperl5 += pkginfo-opencsw-repository-uncommitted +#CHECKPKG_OVERRIDES_CSWperl5 += pkginfo-opencsw-repository-uncommitted include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Mon Dec 21 23:56:07 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Mon, 21 Dec 2015 22:56:07 +0000 Subject: SF.net SVN: gar:[25491] csw/mgar/pkg/perl5/trunk/Makefile Message-ID: <3pPbkn3KqBz180@mail.opencsw.org> Revision: 25491 http://sourceforge.net/p/gar/code/25491 Author: claudio_sf Date: 2015-12-21 22:56:07 +0000 (Mon, 21 Dec 2015) Log Message: ----------- perl5/trunk: customized install_script Modified Paths: -------------- csw/mgar/pkg/perl5/trunk/Makefile Modified: csw/mgar/pkg/perl5/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 22:27:52 UTC (rev 25490) +++ csw/mgar/pkg/perl5/trunk/Makefile 2015-12-21 22:56:07 UTC (rev 25491) @@ -51,7 +51,7 @@ CONFIGURE_ARGS += -Dperladmin="root at localhost" CONFIGURE_ARGS += -Dprefix=$(prefix) CONFIGURE_ARGS += -Dbin=$(bindir) -CONFIGURE_ARGS += -Dscriptdir=$(bindir)/perl5 +CONFIGURE_ARGS += -Dscriptdir=$(bindir)/perl5scripts CONFIGURE_ARGS += -Dprivlib=$(datadir)/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitearch=/opt/csw/local/lib/perl/$(VERSION_MAJOR_FULL) CONFIGURE_ARGS += -Dsitelib=/opt/csw/local/share/perl/$(VERSION_MAJOR_FULL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Tue Dec 22 12:33:42 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Tue, 22 Dec 2015 11:33:42 +0000 Subject: SF.net SVN: gar:[25492] csw/mgar/pkg/openssl1/trunk Message-ID: <3pPwZS2jydz1H5@mail.opencsw.org> Revision: 25492 http://sourceforge.net/p/gar/code/25492 Author: janholzh Date: 2015-12-22 11:33:41 +0000 (Tue, 22 Dec 2015) Log Message: ----------- openssl1/trunk: add openssl 1.0.2 Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/checksums csw/mgar/pkg/openssl1/trunk/files/c_rehash-compat.patch csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl csw/mgar/pkg/openssl1/trunk/files/optimized_configure_targets.patch csw/mgar/pkg/openssl1/trunk/files/update-pkcs11-patch.sh Added Paths: ----------- csw/mgar/pkg/openssl1/trunk/files/0016-Make-engines-dir-soname-dependant.patch csw/mgar/pkg/openssl1/trunk/files/029-fork_safe.patch csw/mgar/pkg/openssl1/trunk/files/032-aes_cbc_len_check.patch csw/mgar/pkg/openssl1/trunk/files/036-evp_leak.patch csw/mgar/pkg/openssl1/trunk/files/039-internal_tests.patch csw/mgar/pkg/openssl1/trunk/files/040-uninitialized_ctx.patch csw/mgar/pkg/openssl1/trunk/files/043-x86_wrong_platform.patch csw/mgar/pkg/openssl1/trunk/files/044-suppress_v8plus_abi_warnings.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.2e-pkcs11-engine.patch Removed Paths: ------------- csw/mgar/pkg/openssl1/trunk/files/0003-make-engines-directory-soname-dependant.patch csw/mgar/pkg/openssl1/trunk/files/0004-remove-obsolete-mv8.patch csw/mgar/pkg/openssl1/trunk/files/fix-test-failure.patch csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch.SunOS5.9 csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1f-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-pkcs11-engine.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-wanboot.patch csw/mgar/pkg/openssl1/trunk/files/optimized_configure_targets.patch.SunOS5.9 csw/mgar/pkg/openssl1/trunk/files/update-t4-patch.sh csw/mgar/pkg/openssl1/trunk/files/update-wanboot-patch.sh Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-22 11:33:41 UTC (rev 25492) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = openssl -VERSION = 1.0.1q +VERSION = 1.0.2e GARTYPE = v2 # Since version 1.0.0, soname is fixed and does not follow the minor releases SONAME=1.0.0 @@ -28,12 +28,12 @@ # This recipe can be used to compile openssl with Sun Studio or GCC # Just define the GARCOMPILER to the GNU or SUN -GARCOMPILER = GNU +GARCOMPILER = SOS12U4 GARCOMPILER_TYPE = $(if $(findstring GCC,$(GARCOMPILER)),GNU,SUN) PACKAGES = CSWlibssl1-0-0 CSWlibssl-dev CSWopenssl-utils -PACKAGING_PLATFORMS = solaris9-sparc solaris9-i386 solaris10-sparc solaris10-i386 solaris11-sparc solaris11-i386 +PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386 solaris11-sparc solaris11-i386 RUNTIME_DEP_PKGS_CSWlibssl1-0-0 = $(RUNTIME_DEP_PKGS_CSWlibssl1-0-0_$(GARCOMPILER_TYPE)) RUNTIME_DEP_PKGS_CSWlibssl1-0-0_GNU = CSWlibgcc-s1 @@ -77,7 +77,7 @@ MASTER_SITES = http://www.openssl.org/source/ DISTFILES = $(NAME)-$(VERSION).tar.gz -DISTFILES += changelog.CSW README.CSW +DISTFILES += README.CSW DISTFILES += map.openssl.libcrypto map.openssl.libssl map.openssl.engines DOCFILES = CHANGES CHANGES.SSLeay PROBLEMS README FAQ README.ASN1 INSTALL NEWS README.ENGINE @@ -85,33 +85,19 @@ # List of engines that will be shipped in the packages ENGINES = 4758cca aep atalla cswift gmp chil nuron sureware ubsec padlock capi -# configure targets patchs needs to be different for Solaris 9 as some map files -# are not available -ifeq ($(shell /usr/bin/uname -r),5.9) - PATCH_SUFFIX = .SunOS5.9 -endif - # This patch is taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ # original file: components/openssl/openssl-1.0.1/patches/18-compiler_opts.patch # I think they are smarter than me to figure what are the best compiler options -PATCHFILES += optimized_configure_targets.patch$(PATCH_SUFFIX) +PATCHFILES += optimized_configure_targets.patch -# This patch add optimised build targets for some solaris isa, ie: -# solaris-sparcv8-cc-sunw, solaris-pentium_pro-cc-sunw and solaris-sparcv9+vis-cc-sunw -# (wonder if they are really worth it) -PATCHFILES += more_configure_targets.patch$(PATCH_SUFFIX) - -#PATCHFILES += fix-test-failure.patch - # We install engines libraries in /opt/csw/lib/engines/1.0.0/ # instead of /opt/csw/lib/engines to avoid clashes with 0.9.8 # and futur new release of ssl libraries -PATCHFILES += 0003-make-engines-directory-soname-dependant.patch +PATCHFILES += 0016-Make-engines-dir-soname-dependant.patch # Upstream uses an obsolete GCC flag # not the case anymore -#PATCHFILES += 0004-remove-obsolete-mv8.patch # Update openssl.cnf path in man page to follow opencsw standard PATCHFILES += opencsw_paths.patch @@ -140,43 +126,18 @@ # Bug opened upstream: http://rt.openssl.org/Ticket/Display.html?id=3153 PATCHFILES += make_issetugid_support_configurable.patch -# Patch taken from Oracle upstream (PSARC/2014/077 OpenSSL Thread and Fork Safety 17822462) -# from https://hg.openindiana.org/upstream/oracle/userland-gate/ -# This patch solves a bug with thread and fork safety and is also needed so that -# upstream wanboot patch can be applied out of the box -ifneq ($(shell /usr/bin/uname -r),5.9) -PATCHFILES += openssl-1.0.1m-fork_safe.patch -endif +PATCHFILES += openssl-1.0.2e-pkcs11-engine.patch +ENGINES += pk11 -# support for pkcs11 engine http://blogs.sun.com/chichang1/entry/how_to_integrate_pkcs11_engine -ifneq ($(shell /usr/bin/uname -r),5.9) - PATCHFILES += openssl-1.0.1m-pkcs11-engine.patch - ENGINES += pk11 -endif +# Patches taken form oracle +PATCHFILES += 029-fork_safe.patch +PATCHFILES += 032-aes_cbc_len_check.patch +PATCHFILES += 036-evp_leak.patch +PATCHFILES += 039-internal_tests.patch +PATCHFILES += 040-uninitialized_ctx.patch +PATCHFILES += 043-x86_wrong_platform.patch +PATCHFILES += 044-suppress_v8plus_abi_warnings.patch -# support for sparc t4 crypto engine -# see http://bubbva.blogspot.fr/2011/11/exciting-crypto-advances-with-t4.html -# https://blogs.oracle.com/DanX/entry/sparc_t4_openssl_engine -# patch taken from https://hg.openindiana.org/upstream/oracle/userland-gate/ -# To update the patch, do: -# cd files && ./update-t4-patch.sh OPENSSL_VERSION - -# The upstream t4 engine patch depends on the wanboot one -# so we will apply the wanboot patch even if we will not enable wanboot -PATCHFILES.sparc.5.11 += openssl-1.0.1m-wanboot.patch -PATCHFILES.sparc.5.11 += openssl-1.0.1m-t4-engine.sparc.5.11.patch -PATCHFILES.sparc.5.11 += openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch -PATCHFILES += $(PATCHFILES.$(GARCH).$(GAROSREL)) - - -# Building openssl with "-j" option doesn't work properly because of dependencies -# in the Makefile. -# This patch fixes this problem, it's taken from gentoo and adapted so that it works -# with sh shell. -# (see http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/openssl/files/) -# does not apply anymore -#PATCHFILES += openssl-1.0.1-parallel-build.patch - LICENSE = LICENSE ##### Build and installation information ##### @@ -199,18 +160,11 @@ # c_rehash is shell script: no isaexec please EXTRA_ISAEXEC_EXCLUDE_FILES = /opt/csw/bin/c_rehash -# We use Studio 12.3 to have the "-Qoption cg" option -# but this version is not available under Solaris 9 -ifneq ($(shell /usr/bin/uname -r),5.9) - ifneq ($(GARCOMPILER),GNU) - GARCOMPILER = SOS12U3 - endif -endif # The corresponding os/compiler to pass to the # openssl Configure script i386_SUN_CONFIGURE_TARGET = no-sse2 solaris-x86-cc-sunw -pentium_pro_SUN_CONFIGURE_TARGET = solaris-x86-pentium_pro-cc-sunw +pentium_pro_SUN_CONFIGURE_TARGET = solaris-x86-cc-sunw amd64_SUN_CONFIGURE_TARGET = solaris64-x86_64-cc-sunw i386_GNU_CONFIGURE_TARGET = no-sse2 solaris-x86-gcc @@ -250,12 +204,8 @@ CONFIGURE_ARGS += $(CONFIGURE_FLAGS) CONFIGURE_ARGS += $($(ISA)_$(GARCOMPILER_TYPE)_CONFIGURE_TARGET) CONFIGURE_ARGS += shared +CONFIGURE_ARGS += --pk11-libname=$(abspath /usr/lib/$(MM_LIBDIR)/libpkcs11.so) -# PKCS11 is only for Solaris 10 so we must create solaris 10 specific packages -ifneq ($(shell /usr/bin/uname -r),5.9) - CONFIGURE_ARGS += --pk11-libname=$(abspath /usr/lib/$(MM_LIBDIR)/libpkcs11.so) -endif - # For now we want the sun perl to be used EXTRA_CONFIGURE_ENV += PERL="/usr/bin/perl" @@ -279,7 +229,7 @@ # We define a custom test script to be able to disable -j only for test execution # as it doesn't work currently -TEST_SCRIPTS = custom +#TEST_SCRIPTS = custom include gar/category.mk @@ -315,7 +265,7 @@ merge-doc: for CATALOGNAME in $(foreach PKG, $(PACKAGES), $(call catalogname,$(PKG))); do \ ginstall -d $(PKGROOT)/$(docdir)/$$CATALOGNAME; \ - (cd $(DOWNLOADDIR)/ && ginstall -m 0644 README.CSW changelog.CSW $(PKGROOT)/$(docdir)/$$CATALOGNAME/); \ + (cd $(DOWNLOADDIR)/ && ginstall -m 0644 README.CSW $(PKGROOT)/$(docdir)/$$CATALOGNAME/); \ (cd $(WORKSRC_FIRSTMOD)/ && ginstall -m 0644 $(DOCFILES) $(PKGROOT)/$(docdir)/$$CATALOGNAME/); \ done Modified: csw/mgar/pkg/openssl1/trunk/checksums =================================================================== --- csw/mgar/pkg/openssl1/trunk/checksums 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/checksums 2015-12-22 11:33:41 UTC (rev 25492) @@ -1 +1 @@ -54538d0cdcb912f9bc2b36268388205e openssl-1.0.1q.tar.gz +5262bfa25b60ed9de9f28d5d52d77fc5 openssl-1.0.2e.tar.gz Deleted: csw/mgar/pkg/openssl1/trunk/files/0003-make-engines-directory-soname-dependant.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/0003-make-engines-directory-soname-dependant.patch 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/0003-make-engines-directory-soname-dependant.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -1,102 +0,0 @@ -From 19481ff83894faf3b114dd7c460be7ca2b8dcea2 Mon Sep 17 00:00:00 2001 -From: Yann Rouillard -Date: Sun, 24 Jul 2011 02:18:21 +0200 -Subject: [PATCH] Make engines directory soname dependant - ---- - Configure | 2 +- - Makefile.org | 3 ++- - engines/Makefile | 10 +++++----- - engines/ccgost/Makefile | 8 ++++---- - 4 files changed, 12 insertions(+), 11 deletions(-) - -diff --git a/Configure b/Configure -index 17b3648..f7e2e0e 100755 ---- a/Configure -+++ b/Configure -@@ -1690,7 +1690,7 @@ while () - } - elsif (/^#define\s+ENGINESDIR/) - { -- my $foo = "$prefix/$libdir/engines"; -+ my $foo = "$prefix/$libdir/openssl-$shlib_version_number/engines"; - $foo =~ s/\\/\\\\/g; - print OUT "#define ENGINESDIR \"$foo\"\n"; - } -diff --git a/Makefile.org b/Makefile.org -index fb0af7e..c9edd8f 100644 ---- a/Makefile.org -+++ b/Makefile.org -@@ -194,6 +194,7 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \ - ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \ - EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \ - SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \ -+ SHLIB_VERSION_NUMBER='$(SHLIB_VERSION_NUMBER)' \ - PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \ - CPUID_OBJ='$(CPUID_OBJ)' \ - BN_ASM='$(BN_ASM)' DES_ENC='$(DES_ENC)' \ -@@ -497,7 +498,7 @@ install: all install_docs install_sw - install_sw: - @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ - $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ -- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ -+ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines \ - $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \ - $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ - $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ -diff --git a/engines/Makefile b/engines/Makefile -index 2fa9534..16554ea 100644 ---- a/engines/Makefile -+++ b/engines/Makefile -@@ -107,7 +107,7 @@ install: - @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... - @if [ -n "$(SHARED_LIBS)" ]; then \ - set -e; \ -- $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines; \ -+ $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines; \ - for l in $(LIBNAMES); do \ - ( echo installing $$l; \ - pfx=lib; \ -@@ -119,13 +119,13 @@ install: - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ - *) sfx=".bad";; \ - esac; \ -- cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -+ cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new; \ - else \ - sfx=".so"; \ -- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -+ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new; \ - fi; \ -- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ -+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new; \ -+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx ); \ - done; \ - fi - @target=install; $(RECURSIVE_MAKE) -diff --git a/engines/ccgost/Makefile b/engines/ccgost/Makefile -index dadb523..e71e6f5 100644 ---- a/engines/ccgost/Makefile -+++ b/engines/ccgost/Makefile -@@ -53,13 +53,13 @@ install: - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ - *) sfx=".bad";; \ - esac; \ -- cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ - else \ - sfx=".so"; \ -- cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ - fi; \ -- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \ -+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx; \ - fi - - links: --- -1.7.6 - Deleted: csw/mgar/pkg/openssl1/trunk/files/0004-remove-obsolete-mv8.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/0004-remove-obsolete-mv8.patch 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/0004-remove-obsolete-mv8.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -1,12 +0,0 @@ -index 9520bf9..416f210 100755 ---- a/Configure -+++ b/Configure -@@ -230,7 +230,7 @@ my %table=( - - #### SPARC Solaris with GNU C setups - "solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", --"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"solaris-sparcv8-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - # -m32 should be safe to add as long as driver recognizes -mcpu=ultrasparc - "solaris-sparcv9-gcc","gcc:-m32 -mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "solaris64-sparcv9-gcc","gcc:-m64 -mcpu=ultrasparc -O3 -Wall -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64", Added: csw/mgar/pkg/openssl1/trunk/files/0016-Make-engines-dir-soname-dependant.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/0016-Make-engines-dir-soname-dependant.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/0016-Make-engines-dir-soname-dependant.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,110 @@ +From fcd631f0c90301312196c50986751d170fca257c Mon Sep 17 00:00:00 2001 +From: Jan Holzhueter +Date: Tue, 22 Dec 2015 10:21:51 +0100 +Subject: [PATCH] Make engines dir soname dependant + +--- + Configure | 2 +- + Makefile.org | 3 ++- + engines/Makefile | 10 +++++----- + engines/ccgost/Makefile | 8 ++++---- + 4 files changed, 12 insertions(+), 11 deletions(-) + +diff --git a/Configure b/Configure +index 296c31b..bf9b757 100755 +--- a/Configure ++++ b/Configure +@@ -1937,7 +1937,7 @@ while () + } + elsif (/^#define\s+ENGINESDIR/) + { +- my $foo = "$prefix/$libdir/engines"; ++ my $foo = "$prefix/$libdir/openssl-$shlib_version_number/engines"; + $foo =~ s/\\/\\\\/g; + print OUT "#define ENGINESDIR \"$foo\"\n"; + } +diff --git a/Makefile.org b/Makefile.org +index e2bbb47..7b3ce9f 100644 +--- a/Makefile.org ++++ b/Makefile.org +@@ -225,6 +225,7 @@ BUILDENV= LC_ALL=C PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)'\ + ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \ + EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \ + SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \ ++ SHLIB_VERSION_NUMBER='$(SHLIB_VERSION_NUMBER)' \ + PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \ + CPUID_OBJ='$(CPUID_OBJ)' BN_ASM='$(BN_ASM)' \ + EC_ASM='$(EC_ASM)' DES_ENC='$(DES_ENC)' \ +@@ -539,7 +540,7 @@ install: all install_docs install_sw + install_sw: + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \ +- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \ ++ $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines \ + $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \ + $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ + $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ +diff --git a/engines/Makefile b/engines/Makefile +index 77521b1..7b0fde0 100644 +--- a/engines/Makefile ++++ b/engines/Makefile +@@ -111,13 +111,13 @@ install: + @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... + @if [ -n "$(SHARED_LIBS)" ]; then \ + set -e; \ +- $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines; \ ++ $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines; \ + for l in $(LIBNAMES); do \ + ( echo installing $$l; \ + pfx=lib; \ + if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \ + sfx=".so"; \ +- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ ++ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new; \ + else \ + case "$(CFLAGS)" in \ + *DSO_BEOS*) sfx=".so";; \ +@@ -126,10 +126,10 @@ install: + *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ + *) sfx=".bad";; \ + esac; \ +- cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ ++ cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new; \ + fi; \ +- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ +- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ ++ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new; \ ++ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$$pfx$$l$$sfx ); \ + done; \ + fi + @target=install; $(RECURSIVE_MAKE) +diff --git a/engines/ccgost/Makefile b/engines/ccgost/Makefile +index 17e1efb..f605112 100644 +--- a/engines/ccgost/Makefile ++++ b/engines/ccgost/Makefile +@@ -47,7 +47,7 @@ install: + pfx=lib; \ + if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \ + sfx=".so"; \ +- cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ ++ cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ + else \ + case "$(CFLAGS)" in \ + *DSO_BEOS*) sfx=".so";; \ +@@ -56,10 +56,10 @@ install: + *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ + *) sfx=".bad";; \ + esac; \ +- cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ ++ cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ + fi; \ +- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ +- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \ ++ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ ++ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl-$(SHLIB_VERSION_NUMBER)/engines/$${pfx}$(LIBNAME)$$sfx; \ + fi + + links: +-- +2.4.0 + Added: csw/mgar/pkg/openssl1/trunk/files/029-fork_safe.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/029-fork_safe.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/029-fork_safe.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,277 @@ +# +# This file adds the code to setup internal mutexes and callback function. +# PSARC/2014/077 +# PSARC/2015/043 +# This change was implemented in-house. The issue was brought up to +# the upstream engineers, but there was no commitment. +# +--- openssl-1.0.1f/crypto/cryptlib.c.~1~ Fri Feb 7 10:41:36 2014 ++++ openssl-1.0.1f/crypto/cryptlib.c Thu Feb 6 16:03:58 2014 +@@ -116,6 +116,7 @@ + + #include "cryptlib.h" + #include ++#include + + #if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN16) + static double SSLeay_MSVC5_hack = 0.0; /* and for VC1.5 */ +@@ -184,6 +185,8 @@ + */ + static STACK_OF(CRYPTO_dynlock) *dyn_locks = NULL; + ++static pthread_mutex_t *solaris_openssl_locks; ++ + static void (MS_FAR *locking_callback) (int mode, int type, + const char *file, int line) = 0; + static int (MS_FAR *add_lock_callback) (int *pointer, int amount, +@@ -373,7 +376,10 @@ + void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *(*func) + (const char *file, int line)) + { +- dynlock_create_callback = func; ++ /* ++ * we now setup our own dynamic locking callback, and disallow ++ * setting of another locking callback. ++ */ + } + + void CRYPTO_set_dynlock_lock_callback(void (*func) (int mode, +@@ -382,7 +388,10 @@ + const char *file, + int line)) + { +- dynlock_lock_callback = func; ++ /* ++ * we now setup our own dynamic locking callback, and disallow ++ * setting of another locking callback. ++ */ + } + + void CRYPTO_set_dynlock_destroy_callback(void (*func) +@@ -389,7 +398,10 @@ + (struct CRYPTO_dynlock_value *l, + const char *file, int line)) + { +- dynlock_destroy_callback = func; ++ /* ++ * we now setup our own dynamic locking callback, and disallow ++ * setting of another locking callback. ++ */ + } + + void (*CRYPTO_get_locking_callback(void)) (int mode, int type, +@@ -402,6 +414,128@@ + return (add_lock_callback); + } + ++/* ++ * This is the locking callback function which all applications will be ++ * using when CRYPTO_lock() is called. ++ */ ++static void solaris_locking_callback(int mode, int type, const char *file, ++ int line) ++{ ++ if (mode & CRYPTO_LOCK) { ++ pthread_mutex_lock(&solaris_openssl_locks[type]); ++ } else { ++ pthread_mutex_unlock(&solaris_openssl_locks[type]); ++ } ++} ++ ++/* ++ * Implement Solaris's own dynamic locking routines. ++ */ ++static struct CRYPTO_dynlock_value * ++solaris_dynlock_create(const char *file, int line) ++{ ++ int ret; ++ pthread_mutex_t *dynlock; ++ ++ dynlock = OPENSSL_malloc(sizeof(pthread_mutex_t)); ++ if (dynlock == NULL) { ++ return (NULL); ++ } ++ ++ ret = pthread_mutex_init(dynlock, NULL); ++ OPENSSL_assert(ret); ++ ++ return ((struct CRYPTO_dynlock_value *)dynlock); ++} ++ ++static void ++solaris_dynlock_lock(int mode, struct CRYPTO_dynlock_value *dynlock, ++ const char *file, int line) ++{ ++ int ret; ++ ++ if (mode & CRYPTO_LOCK) { ++ ret = pthread_mutex_lock((pthread_mutex_t *)dynlock); ++ } else { ++ ret = pthread_mutex_unlock((pthread_mutex_t *)dynlock); ++ } ++ ++ OPENSSL_assert(ret == 0); ++} ++ ++static void ++solaris_dynlock_destroy(struct CRYPTO_dynlock_value *dynlock, ++ const char *file, int line) ++{ ++ int ret; ++ ret = pthread_mutex_destroy((pthread_mutex_t *)dynlock); ++ OPENSSL_assert(ret); ++} ++ ++ ++/* ++ * This function is called when a child process is forked to setup its own ++ * global locking callback function ptr and mutexes. ++ */ ++static void solaris_fork_child(void) ++{ ++ /* ++ * clear locking_callback to indicate that locks should ++ * be reinitialized. ++ */ ++ locking_callback = NULL; ++ solaris_locking_setup(); ++} ++ ++/* ++ * This function allocates and initializes the global mutex array, and ++ * sets the locking callback. ++ */ ++void solaris_locking_setup() ++{ ++ int i; ++ int num_locks; ++ ++ /* setup the dynlock callback if not already */ ++ if (dynlock_create_callback == NULL) { ++ dynlock_create_callback = solaris_dynlock_create; ++ } ++ if (dynlock_lock_callback == NULL) { ++ dynlock_lock_callback = solaris_dynlock_lock; ++ } ++ if (dynlock_destroy_callback == NULL) { ++ dynlock_destroy_callback = solaris_dynlock_destroy; ++ } ++ ++ /* locking callback is already setup. Nothing to do */ ++ if (locking_callback != NULL) { ++ return; ++ } ++ ++ /* ++ * Set atfork handler so that child can setup its own mutexes and ++ * locking callbacks when it is forked ++ */ ++ (void) pthread_atfork(NULL, NULL, solaris_fork_child); ++ ++ /* allocate locks needed by OpenSSL */ ++ num_locks = CRYPTO_num_locks(); ++ solaris_openssl_locks = ++ OPENSSL_malloc(sizeof (pthread_mutex_t) * num_locks); ++ if (solaris_openssl_locks == NULL) { ++ fprintf(stderr, ++ "solaris_locking_setup: memory allocation failure.\n"); ++ abort(); ++ } ++ ++ /* initialize openssl mutexes */ ++ for (i = 0; i < num_locks; i++) { ++ pthread_mutex_init(&solaris_openssl_locks[i], NULL); ++ } ++ locking_callback = solaris_locking_callback; ++ ++} ++ + void CRYPTO_set_locking_callback(void (*func) (int mode, int type, + const char *file, int line)) + { +@@ -410,7 +486,11 @@ + * started. + */ + OPENSSL_init(); +- locking_callback = func; ++ ++ /* ++ * we now setup our own locking callback and mutexes, and disallow ++ * setting of another locking callback. ++ */ + } + + void CRYPTO_set_add_lock_callback(int (*func) (int *num, int mount, int type, +@@ -471,9 +551,10 @@ + + int CRYPTO_THREADID_set_callback(void (*func) (CRYPTO_THREADID *)) + { +- if (threadid_callback) +- return 0; +- threadid_callback = func; ++ /* ++ * Use the backup method (the address of 'errno') to identify the ++ * thread and disallow setting the threadid callback. ++ */ + return 1; + } + +@@ -529,7 +669,10 @@ + + void CRYPTO_set_id_callback(unsigned long (*func) (void)) + { +- id_callback = func; ++ /* ++ * Use the backup method to identify the thread/process. ++ * Setting the id callback is disallowed. ++ */ + } + + unsigned long CRYPTO_thread_id(void) +--- openssl-1.0.1f/crypto/cryptlib.h.~1~ Fri Feb 7 10:41:42 2014 ++++ openssl-1.0.1f/crypto/cryptlib.h Thu Feb 6 16:04:16 2014 +@@ -104,6 +104,8 @@ + void *OPENSSL_stderr(void); + extern int OPENSSL_NONPIC_relocated; + ++void solaris_locking_setup(); ++ + #ifdef __cplusplus + } + #endif +--- openssl-1.0.1f/crypto/sparccpuid.S.~1~ Fri Feb 7 10:41:37 2014 ++++ openssl-1.0.1f/crypto/sparccpuid.S Thu Feb 6 16:04:14 2014 +@@ -525,5 +525,7 @@ + .size _sparcv9_vis1_instrument_bus2,.-_sparcv9_vis1_instrument_bus2 + + .section ".init",#alloc,#execinstr ++ call solaris_locking_setup ++ nop + call OPENSSL_cpuid_setup + nop +--- openssl-1.0.1f/crypto/x86_64cpuid.pl.~1~ Wed Feb 12 13:20:09 2014 ++++ openssl-1.0.1f/crypto/x86_64cpuid.pl Wed Feb 12 13:21:20 2014 +@@ -20,7 +20,10 @@ + print<<___; + .extern OPENSSL_cpuid_setup + .hidden OPENSSL_cpuid_setup ++.extern solaris_locking_setup ++.hidden solaris_locking_setup + .section .init ++ call solaris_locking_setup + call OPENSSL_cpuid_setup + + .hidden OPENSSL_ia32cap_P +--- openssl-1.0.1f/crypto/x86cpuid.pl.~1~ Wed Feb 12 13:38:03 2014 ++++ openssl-1.0.1f/crypto/x86cpuid.pl Wed Feb 12 13:38:31 2014 +@@ -379,8 +379,10 @@ + &ret (); + &function_end_B("OPENSSL_ia32_rdseed"); + ++&initseg("solaris_locking_setup"); + &initseg("OPENSSL_cpuid_setup"); + ++&hidden("solaris_locking_setup"); + &hidden("OPENSSL_cpuid_setup"); + &hidden("OPENSSL_ia32cap_P"); + Added: csw/mgar/pkg/openssl1/trunk/files/032-aes_cbc_len_check.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/032-aes_cbc_len_check.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/032-aes_cbc_len_check.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,18 @@ +# +# This was developed in house and reported to the upstream. +# +--- openssl-1.0.1e/crypto/evp/e_aes.c Tue Jul 2 11:03:12 2013 ++++ openssl-1.0.1e/crypto/evp/e_aes.c.new Tue Jul 2 11:04:56 2013 +@@ -1016,8 +1016,12 @@ + static int aes_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, + const unsigned char *in, size_t len) + { ++ size_t bl = ctx->cipher->block_size; + EVP_AES_KEY *dat = (EVP_AES_KEY *) ctx->cipher_data; + ++ if (len < bl) ++ return 1; ++ + if (dat->stream.cbc) + (*dat->stream.cbc) (in, out, len, &dat->ks, ctx->iv, ctx->encrypt); + else if (ctx->encrypt) Added: csw/mgar/pkg/openssl1/trunk/files/036-evp_leak.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/036-evp_leak.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/036-evp_leak.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,144 @@ +Patch developed in-house. Solaris-specific; not suitable for upstream. + +--- openssl-1.0.1f/crypto/evp/evp_enc.c.orig Mon Feb 11 07:26:04 2013 ++++ openssl-1.0.1f/crypto/evp/evp_enc.c Mon Feb 3 16:40:48 2014 +@@ -392,11 +392,13 @@ + + if (ctx->cipher->flags & EVP_CIPH_FLAG_CUSTOM_CIPHER) { + ret = M_do_cipher(ctx, out, NULL, 0); +- if (ret < 0) +- return 0; +- else ++ if (ret < 0) { ++ ret = 0; ++ goto cleanup; ++ } else + *outl = ret; +- return 1; ++ ret = 1; ++ goto cleanup; + } + + b = ctx->cipher->block_size; +@@ -403,7 +405,8 @@ + OPENSSL_assert(b <= sizeof ctx->buf); + if (b == 1) { + *outl = 0; +- return 1; ++ ret = 1; ++ goto cleanup; + } + bl = ctx->buf_len; + if (ctx->flags & EVP_CIPH_NO_PADDING) { +@@ -410,10 +413,12 @@ + if (bl) { + EVPerr(EVP_F_EVP_ENCRYPTFINAL_EX, + EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH); +- return 0; ++ ret = 0; ++ goto cleanup; + } + *outl = 0; +- return 1; ++ ret = 1; ++ goto cleanup; + } + + n = b - bl; +@@ -424,6 +429,11 @@ + if (ret) + *outl = b; + ++cleanup: ++ if (ctx->cipher->cleanup) { ++ ctx->cipher->cleanup(ctx); ++ } ++ + return ret; + } + +@@ -491,6 +501,7 @@ + int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) + { + int i, n; ++ int err = 1; + unsigned int b; + *outl = 0; + +@@ -496,11 +507,13 @@ + + if (ctx->cipher->flags & EVP_CIPH_FLAG_CUSTOM_CIPHER) { + i = M_do_cipher(ctx, out, NULL, 0); +- if (i < 0) +- return 0; +- else ++ if (i < 0) { ++ err = 0; ++ goto cleanup; ++ } else + *outl = i; +- return 1; ++ err = 1; ++ goto cleanup; + } + + b = ctx->cipher->block_size; +@@ -508,10 +521,12 @@ + if (ctx->buf_len) { + EVPerr(EVP_F_EVP_DECRYPTFINAL_EX, + EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH); +- return 0; ++ err = 0; ++ goto cleanup; + } + *outl = 0; +- return 1; ++ err = 1; ++ goto cleanup; + } + if (b > 1) { + if (ctx->buf_len || !ctx->final_used) { +@@ -516,7 +531,8 @@ + if (b > 1) { + if (ctx->buf_len || !ctx->final_used) { + EVPerr(EVP_F_EVP_DECRYPTFINAL_EX, EVP_R_WRONG_FINAL_BLOCK_LENGTH); +- return (0); ++ err = 0; ++ goto cleanup; + } + OPENSSL_assert(b <= sizeof ctx->final); + +@@ -527,7 +543,8 @@ + n = ctx->final[b - 1]; + if (n == 0 || n > (int)b) { + EVPerr(EVP_F_EVP_DECRYPTFINAL_EX, EVP_R_BAD_DECRYPT); +- return (0); ++ err = 0; ++ goto cleanup; + } + for (i = 0; i < n; i++) { + if (ctx->final[--b] != n) { +@@ -532,7 +549,8 @@ + for (i = 0; i < n; i++) { + if (ctx->final[--b] != n) { + EVPerr(EVP_F_EVP_DECRYPTFINAL_EX, EVP_R_BAD_DECRYPT); +- return (0); ++ err = 0; ++ goto cleanup; + } + } + n = ctx->cipher->block_size - n; +@@ -541,7 +559,12 @@ + *outl = n; + } else + *outl = 0; +- return (1); ++ err = 1; ++cleanup: ++ if (ctx->cipher->cleanup) { ++ ctx->cipher->cleanup(ctx); ++ } ++ return err; + } + + void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx) Added: csw/mgar/pkg/openssl1/trunk/files/039-internal_tests.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/039-internal_tests.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/039-internal_tests.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,17 @@ +# +# Patch developed in-house. Solaris-specific; not suitable for upstream. +# +# Remove test 'test_ca' because it depends on directories +# not present in the build directory. The rest of tests are ok. +# +--- a/test/Makefile.orig Thu Apr 2 12:11:12 2015 ++++ b/test/Makefile Thu Apr 2 12:11:21 2015 +@@ -146,7 +146,7 @@ + test_rand test_bn test_ec test_ecdsa test_ecdh \ + test_enc test_x509 test_rsa test_crl test_sid \ + test_gen test_req test_pkcs7 test_verify test_dh test_dsa \ +- test_ss test_ca test_engine test_evp test_evp_extra test_ssl test_tsa test_ige \ ++ test_ss test_engine test_evp test_evp_extra test_ssl test_tsa test_ige \ + test_jpake test_srp test_cms test_ocsp test_v3name test_heartbeat \ + test_constant_time test_verify_extra test_clienthello + Added: csw/mgar/pkg/openssl1/trunk/files/040-uninitialized_ctx.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/040-uninitialized_ctx.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/040-uninitialized_ctx.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,14 @@ +# +# This was developed in house. Upstreadm notified (PR#277). +# +diff -ru openssl-1.0.1m/crypto/evp/evp_enc.c openssl-1.0.1m/crypto/evp/evp_enc.c.new +--- openssl-1.0.1m/crypto/evp/evp_enc.c Thu May 7 09:46:32 2015 ++++ openssl-1.0.1m/crypto/evp/evp_enc.c.new Thu May 7 09:46:23 2015 +@@ -185,6 +185,7 @@ + EVPerr(EVP_F_EVP_CIPHERINIT_EX, ERR_R_MALLOC_FAILURE); + return 0; + } ++ (void) memset(ctx->cipher_data, 0, ctx->cipher->ctx_size); + } else { + ctx->cipher_data = NULL; + } Added: csw/mgar/pkg/openssl1/trunk/files/043-x86_wrong_platform.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/043-x86_wrong_platform.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/043-x86_wrong_platform.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,15 @@ +# +# This was developed in house to fix the wrong platform detection for Solaris. +# Reported to the upstream. +# +--- openssl-1.0.2d/crypto/perlasm/x86gas.pl Thu Jul 9 04:57:15 2015 ++++ openssl-1.0.2d/crypto/perlasm/x86gas.pl.new Thu Jul 30 15:17:14 2015 +@@ -196,8 +196,6 @@ + &::mov($dst,&::DWP("$indirect-$reflabel",$base)); + $non_lazy_ptr{"$nmdecor$sym"}=$indirect; + } +- elsif ($sym eq "OPENSSL_ia32cap_P" && $::elf>0) +- { &::lea($dst,&::DWP("$sym-$reflabel",$base)); } + else + { &::lea($dst,&::DWP("_GLOBAL_OFFSET_TABLE_+[.-$reflabel]", + $base)); Added: csw/mgar/pkg/openssl1/trunk/files/044-suppress_v8plus_abi_warnings.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/044-suppress_v8plus_abi_warnings.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/044-suppress_v8plus_abi_warnings.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -0,0 +1,70 @@ +# +# Patch developed in-house. Solaris-specific; not suitable for upstream. +# +# Suppress warnings about sparcv8+ ABI violation +# when building T4-specific modules as 32-bit: +# v8+ ABI violation: illegal use of %i or %l register as rs1 in "brnz,a" instruction +# This has been confirmed as a valid usecase and is thus intentional. +# +--- a/crypto/aes/Makefile.orig ?t dub 30 03:15:03 2015 ++++ b/crypto/aes/Makefile ?t dub 30 03:19:32 2015 +@@ -75,6 +75,9 @@ + aest4-sparcv9.s: asm/aest4-sparcv9.pl ../perlasm/sparcv9_modes.pl + $(PERL) asm/aest4-sparcv9.pl $(CFLAGS) > $@ + ++aest4-sparcv9.o: aest4-sparcv9.s ++ $(AS) $(ASFLAGS) -Wa,-n -o $@ $^ ++ + aes-ppc.s: asm/aes-ppc.pl + $(PERL) asm/aes-ppc.pl $(PERLASM_SCHEME) $@ + vpaes-ppc.s: asm/vpaes-ppc.pl +--- a/crypto/sha/Makefile.orig ?t dub 30 14:37:32 2015 ++++ b/crypto/sha/Makefile ?t dub 30 14:40:49 2015 +@@ -73,6 +73,8 @@ + sha1-sparcv9.S: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) + sha256-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) + sha512-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) ++sha512-sparcv9.o: sha512-sparcv9.S ++ $(CC) $(CFLAGS) -Wa,-n -c -o $@ $^ + + sha1-ppc.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $(PERLASM_SCHEME) $@ + sha256-ppc.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@ +--- a/crypto/bn/Makefile.orig ?t dub 30 14:43:20 2015 ++++ b/crypto/bn/Makefile ?t dub 30 14:45:11 2015 +@@ -79,8 +79,12 @@ + $(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@ + vis3-mont.s: asm/vis3-mont.pl + $(PERL) asm/vis3-mont.pl $(CFLAGS) > $@ ++vis3-mont.o: vis3-mont.s ++ $(AS) $(ASFLAGS) -Wa,-n -o $@ $^ + sparct4-mont.S: asm/sparct4-mont.pl + $(PERL) asm/sparct4-mont.pl $(CFLAGS) > $@ ++sparct4-mont.o: sparct4-mont.S ++ $(CC) $(CFLAGS) -Wa,-n -c -o $@ $^ + sparcv9-gf2m.S: asm/sparcv9-gf2m.pl + $(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) > $@ + +--- a/crypto/camellia/Makefile.orig Fri Aug 21 14:51:49 2015rypto/camellia/Makef ++++ b/crypto/camellia/Makefile Fri Aug 21 14:53:18 2015.2d/crypto/camellia/Make +@@ -51,6 +51,9 @@ + cmllt4-sparcv9.s: asm/cmllt4-sparcv9.pl ../perlasm/sparcv9_modes.pl + $(PERL) asm/cmllt4-sparcv9.pl $(CFLAGS) > $@ + ++cmllt4-sparcv9.o: cmllt4-sparcv9.s ++ $(AS) $(ASFLAGS) -Wa,-n -o $@ $^ ++ + files: + $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO + +--- a/crypto/modes/Makefile.orig Fri Aug 21 15:22:37 2015 ++++ b/crypto/modes/Makefile Fri Aug 21 15:26:12 2015 +@@ -54,6 +54,9 @@ + $(PERL) asm/aesni-gcm-x86_64.pl $(PERLASM_SCHEME) > $@ + ghash-sparcv9.s: asm/ghash-sparcv9.pl + $(PERL) asm/ghash-sparcv9.pl $@ $(CFLAGS) ++ghash-sparcv9.o: ghash-sparcv9.s ++ $(AS) $(ASFLAGS) -Wa,-n -o $@ $^ ++ + ghash-alpha.s: asm/ghash-alpha.pl + (preproc=$$$$.$@.S; trap "rm $$preproc" INT; \ + $(PERL) asm/ghash-alpha.pl > $$preproc && \ Modified: csw/mgar/pkg/openssl1/trunk/files/c_rehash-compat.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/c_rehash-compat.patch 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/c_rehash-compat.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -7,30 +7,50 @@ tools/c_rehash.in | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) -Index: openssl-1.0.0d/tools/c_rehash.in +Index: openssl-1.0.2b/tools/c_rehash.in =================================================================== ---- openssl-1.0.0d.orig/tools/c_rehash.in 2011-04-13 20:41:28.000000000 +0000 -+++ openssl-1.0.0d/tools/c_rehash.in 2011-04-13 20:41:28.000000000 +0000 -@@ -86,6 +86,7 @@ - } +--- openssl-1.0.2b.orig/tools/c_rehash.in ++++ openssl-1.0.2b/tools/c_rehash.in +@@ -8,8 +8,6 @@ my $prefix; + + my $openssl = $ENV{OPENSSL} || "openssl"; + my $pwd; +-my $x509hash = "-subject_hash"; +-my $crlhash = "-hash"; + my $verbose = 0; + my $symlink_exists=eval {symlink("",""); 1}; + my $removelinks = 1; +@@ -18,10 +16,7 @@ my $removelinks = 1; + while ( $ARGV[0] =~ /^-/ ) { + my $flag = shift @ARGV; + last if ( $flag eq '--'); +- if ( $flag eq '-old') { +- $x509hash = "-subject_hash_old"; +- $crlhash = "-hash_old"; +- } elsif ( $flag eq '-h') { ++ if ( $flag eq '-h') { + help(); + } elsif ( $flag eq '-n' ) { + $removelinks = 0; +@@ -113,7 +108,9 @@ sub hash_dir { + next; } link_hash_cert($fname) if($cert); + link_hash_cert_old($fname) if($cert); link_hash_crl($fname) if($crl); ++ link_hash_crl_old($fname) if($crl); } } -@@ -119,8 +120,9 @@ +@@ -146,6 +143,7 @@ sub check_file { + sub link_hash_cert { my $fname = $_[0]; -+ my $hashopt = $_[1] || '-subject_hash'; ++ my $x509hash = $_[1] || '-subject_hash'; $fname =~ s/'/'\\''/g; -- my ($hash, $fprint) = `"$openssl" x509 -hash -fingerprint -noout -in "$fname"`; -+ my ($hash, $fprint) = `"$openssl" x509 $hashopt -fingerprint -noout -in "$fname"`; + my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`; chomp $hash; - chomp $fprint; - $fprint =~ s/^.*=//; -@@ -150,6 +152,10 @@ +@@ -177,10 +175,20 @@ sub link_hash_cert { $hashlist{$hash} = $fprint; } @@ -38,6 +58,16 @@ + link_hash_cert($_[0], '-subject_hash_old'); +} + ++sub link_hash_crl_old { ++ link_hash_crl($_[0], '-hash_old'); ++} ++ ++ # Same as above except for a CRL. CRL links are of the form .r sub link_hash_crl { + my $fname = $_[0]; ++ my $crlhash = $_[1] || "-hash"; + $fname =~ s/'/'\\''/g; + my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`; + chomp $hash; Deleted: csw/mgar/pkg/openssl1/trunk/files/fix-test-failure.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/fix-test-failure.patch 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/fix-test-failure.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -1,14 +0,0 @@ ---- ./ssl/t1_lib.c 2010/11/16 13:26:24 1.64.2.15 -+++ ./ssl/t1_lib.c 2010/11/16 22:41:07 1.64.2.16 -@@ -779,8 +779,8 @@ - { - if(s->session->tlsext_ecpointformatlist) - { -- *al = TLS1_AD_DECODE_ERROR; -- return 0; -+ OPENSSL_free(s->session->tlsext_ecpointformatlist); -+ s->session->tlsext_ecpointformatlist = NULL; - } - s->session->tlsext_ecpointformatlist_length = 0; - if ((s->session->tlsext_ecpointformatlist = OPENSSL_malloc(ecpointformatlist_length)) == NULL) - Modified: csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto 2015-12-22 11:33:41 UTC (rev 25492) @@ -3709,7 +3709,6 @@ CRYPTO_ccm128_aad = DIRECT; CRYPTO_gcm128_init = DIRECT; CRYPTO_gcm128_decrypt = DIRECT; - ENGINE_load_rsax = DIRECT; CRYPTO_gcm128_decrypt_ctr32 = DIRECT; CRYPTO_gcm128_encrypt_ctr32 = DIRECT; CRYPTO_gcm128_finish = DIRECT; @@ -3739,3 +3738,38 @@ CRYPTO_memcmp = DIRECT; } OPENSSL_1.0.1; +OPENSSL_1.0.2 { + global: + X509_chain_up_ref = DIRECT; + X509_chain_check_suiteb = DIRECT; + X509_get_signature_nid = DIRECT; + EVP_aes_256_cbc_hmac_sha256 = DIRECT; + EVP_aes_128_cbc_hmac_sha256 = DIRECT; + EC_curve_nist2nid = DIRECT; + X509_check_email = DIRECT; + EVP_aes_128_wrap = DIRECT; + X509_VERIFY_PARAM_set1_ip_asc = DIRECT; + X509_check_ip_asc = DIRECT; + EVP_des_ede3_wrap = DIRECT; + X509_STORE_set_lookup_crls_cb = DIRECT; + X509_http_nbio = DIRECT; + EC_curve_nid2nist = DIRECT; + X509_VERIFY_PARAM_set1_email = DIRECT; + X509_CRL_http_nbio = DIRECT; + CMS_RecipientInfo_get0_pkey_ctx = DIRECT; + CMS_RecipientInfo_kari_get0_ctx = DIRECT; + EVP_aes_192_wrap = DIRECT; + ASN1_TIME_diff = DIRECT; + X509_check_host = DIRECT; + EVP_aes_256_wrap = DIRECT; + OCSP_REQ_CTX_http = DIRECT; + CMS_SignerInfo_get0_pkey_ctx = DIRECT; + X509_CRL_diff = DIRECT; + OCSP_REQ_CTX_new = DIRECT; + X509_VERIFY_PARAM_set1_host = DIRECT; + PEM_write_bio_DHxparams = DIRECT; + DH_get_1024_160 = DIRECT; + DH_get_2048_256 = DIRECT; + DH_get_2048_224 = DIRECT; +} OPENSSL_1.0.1d; + Modified: csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl 2015-12-22 11:33:41 UTC (rev 25492) @@ -292,3 +292,31 @@ } OPENSSL_1.0.0; +OPENSSL_1.0.2 { + global: + SSL_CONF_CTX_set_ssl_ctx = DIRECT; + SSL_CONF_CTX_free = DIRECT; + SSL_get_shared_sigalgs = DIRECT; + SSL_check_chain = DIRECT; + SSL_CONF_CTX_set_flags = DIRECT; + SSL_CTX_set_alpn_protos = DIRECT; + SSL_CONF_cmd = DIRECT; + SSL_CIPHER_find = DIRECT; + SSL_get0_alpn_selected = DIRECT; + SSL_certs_clear = DIRECT; + SSL_CONF_CTX_new = DIRECT; + SSL_get_sigalgs = DIRECT; + SSL_CONF_cmd_argv = DIRECT; + SSL_CTX_use_serverinfo_file = DIRECT; + SSL_is_server = DIRECT; + SSL_CTX_add_client_custom_ext = DIRECT; + SSL_CTX_set_cert_cb = DIRECT; + SSL_CTX_set_alpn_select_cb = DIRECT; + SSL_CONF_CTX_finish = DIRECT; + DTLSv1_2_client_method = DIRECT; + DTLSv1_2_server_method = DIRECT; + DTLS_client_method = DIRECT; + DTLS_server_method = DIRECT; + DTLSv1_2_method = DIRECT; + SSL_CTX_add_server_custom_ext = DIRECT; +} OPENSSL_1.0.1; Deleted: csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -1,18 +0,0 @@ -diff --speed-large-files --minimal -Nru ./Configure.old ./Configure ---- ./Configure.old 2015-03-20 22:50:04.861332664 +0100 -+++ ./Configure 2015-03-20 22:50:09.224641344 +0100 -@@ -267,6 +267,14 @@ - # to discard unused sections and files when linking wanboot-openssl.o - "solaris64-sparcv9-cc-sunw-wanboot","cc:-xtarget=ultra -m64 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -xspace -xF=%all -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl:BN_LLONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64", - -+#### More configure targets for Opencsw build -+"solaris-x86-pentium_pro-cc-sunw","cc:-m32 -xarch=pentium_pro -xO3 -xspace -Xa::-D_REENTRANT::-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${x86_elf_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign -M/usr/lib/ld/map.noexdata:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+# -+"solaris-sparcv8-cc-sunw","cc:-xtarget=v8 -m32 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+# -+"solaris-sparcv9+vis-cc-sunw","cc:-xtarget=ultra -m32 -xarch=sparcvis -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+ -+ - #### IRIX 5.x configs - # -mips2 flag is added by ./config when appropriate. - "irix-gcc","gcc:-O3 -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", Deleted: csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch.SunOS5.9 =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch.SunOS5.9 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/more_configure_targets.patch.SunOS5.9 2015-12-22 11:33:41 UTC (rev 25492) @@ -1,18 +0,0 @@ -diff --speed-large-files --minimal -Nru ./Configure.old ./Configure ---- ./Configure.old 2015-03-20 22:50:04.861332664 +0100 -+++ ./Configure 2015-03-20 22:50:09.224641344 +0100 -@@ -267,6 +267,14 @@ - # to discard unused sections and files when linking wanboot-openssl.o - "solaris64-sparcv9-cc-sunw-wanboot","cc:-xtarget=ultra -m64 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -xspace -xF=%all -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl:BN_LLONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64", - -+#### More configure targets for Opencsw build -+"solaris-x86-pentium_pro-cc-sunw","cc:-m32 -xarch=pentium_pro -xO3 -xspace -Xa::-D_REENTRANT::-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${x86_elf_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+# -+"solaris-sparcv8-cc-sunw","cc:-xarch=v8 -m32 -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+# -+"solaris-sparcv9+vis-cc-sunw","cc:-xtarget=ultra -m32 -xarch=sparcvis -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+ -+ - #### IRIX 5.x configs - # -mips2 flag is added by ./config when appropriate. - "irix-gcc","gcc:-O3 -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", Deleted: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1e-t4-engine-sparcv9+vis.sparc.5.11.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -1,25 +0,0 @@ -From 3b63574c8a3ba589f9a69bece6931a22a73675d2 Mon Sep 17 00:00:00 2001 -From: Yann Rouillard -Date: Mon, 11 Mar 2013 23:41:45 +0100 -Subject: [PATCH] t4 engine complement patch for sparcv9+vis target - ---- - Configure | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Configure b/Configure -index 3f32e5a..e3bf481 100755 ---- a/Configure -+++ b/Configure -@@ -278,7 +278,7 @@ my %table=( - # - "solaris-sparcv8-cc-sunw","cc:-xtarget=v8 -m32 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - # --"solaris-sparcv9+vis-cc-sunw","cc:-xtarget=ultra -m32 -xarch=sparcvis -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"solaris-sparcv9+vis-cc-sunw","cc:-xtarget=ultra -m32 -xarch=sparcvis -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc -lsoftcrypto:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - - - #### IRIX 5.x configs --- -1.8.1.4 - Deleted: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1f-t4-engine.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1f-t4-engine.sparc.5.11.patch 2015-12-21 22:56:07 UTC (rev 25491) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1f-t4-engine.sparc.5.11.patch 2015-12-22 11:33:41 UTC (rev 25492) @@ -1,7882 +0,0 @@ -# -# This file adds inline T4 instruction support to OpenSSL upstream code. -# -Index: Configure -=================================================================== -diff -ru openssl-1.0.1e/Configure openssl-1.0.1e/Configure ---- openssl-1.0.1e/Configure 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/Configure 2011-07-27 10:48:17.817470000 -0700 -@@ -135,7 +135,7 @@ - - my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o:"; - my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void"; --my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; -+my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o:des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; - my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void"; - my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void"; - my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::"; -Index: crypto/sparccpuid.S -=================================================================== -diff -ru openssl-1.0.1e/crypto/sparccpuid.S openssl-1.0.1e/crypto/sparccpuid.S ---- openssl-1.0.1e/crypto/sparccpuid.S 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sparccpuid.S 2011-07-27 10:48:17.817470000 -0700 -@@ -1,3 +1,7 @@ -+#ifdef OPENSSL_FIPSCANISTER -+#include -+#endif -+ - #if defined(__SUNPRO_C) && defined(__sparcv9) - # define ABI64 /* They've said -xarch=v9 at command line */ - #elif defined(__GNUC__) && defined(__arch64__) -@@ -123,7 +127,7 @@ - fmovs %f1,%f3 - fmovs %f0,%f2 - -- add %fp,BIAS,%i0 ! return pointer to caller\xB4s top of stack -+ add %fp,BIAS,%i0 ! return pointer to caller?s top of stack - - ret - restore -@@ -235,10 +239,10 @@ - .global _sparcv9_vis1_probe - .align 8 - _sparcv9_vis1_probe: -+ .word 0x81b00d80 !fxor %f0,%f0,%f0 - add %sp,BIAS+2,%o1 -- .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - retl -- .word 0x81b00d80 !fxor %f0,%f0,%f0 -+ .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - .type _sparcv9_vis1_probe,#function - .size _sparcv9_vis1_probe,.-_sparcv9_vis1_probe - -@@ -251,7 +255,12 @@ - ! UltraSPARC IIe 7 - ! UltraSPARC III 7 - ! UltraSPARC T1 24 -+! SPARC T4 65(*) - ! -+! (*) result has lesser to do with VIS instruction latencies, rdtick -+! appears that slow, but it does the trick in sense that FP and -+! VIS code paths are still slower than integer-only ones. -+! - ! Numbers for T2 and SPARC64 V-VII are more than welcomed. - ! - ! It would be possible to detect specifically US-T1 by instrumenting -@@ -260,6 +269,8 @@ - .global _sparcv9_vis1_instrument - .align 8 - _sparcv9_vis1_instrument: -+ .word 0x81b00d80 !fxor %f0,%f0,%f0 -+ .word 0x85b08d82 !fxor %f2,%f2,%f2 - .word 0x91410000 !rd %tick,%o0 - .word 0x81b00d80 !fxor %f0,%f0,%f0 - .word 0x85b08d82 !fxor %f2,%f2,%f2 -@@ -314,6 +325,30 @@ - .type _sparcv9_fmadd_probe,#function - .size _sparcv9_fmadd_probe,.-_sparcv9_fmadd_probe - -+.global _sparcv9_rdcfr -+.align 8 -+_sparcv9_rdcfr: -+ retl -+ .word 0x91468000 !rd %asr26,%o0 -+.type _sparcv9_rdcfr,#function -+.size _sparcv9_rdcfr,.-_sparcv9_rdcfr -+ -+.global _sparcv9_vis3_probe -+.align 8 -+_sparcv9_vis3_probe: -+ retl -+ .word 0x81b022a0 !xmulx %g0,%g0,%g0 -+.type _sparcv9_vis3_probe,#function -+.size _sparcv9_vis3_probe,.-_sparcv9_vis3_probe -+ -+.global _sparcv9_random -+.align 8 -+_sparcv9_random: -+ retl -+ .word 0x91b002a0 !random %o0 -+.type _sparcv9_random,#function -+.size _sparcv9_random,.-_sparcv9_vis3_probe -+ - .global OPENSSL_cleanse - .align 32 - OPENSSL_cleanse: -@@ -398,6 +433,102 @@ - .size OPENSSL_cleanse,.-OPENSSL_cleanse - - #ifndef _BOOT -+.global _sparcv9_vis1_instrument_bus -+.align 8 -+_sparcv9_vis1_instrument_bus: -+ mov %o1,%o3 ! save cnt -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ mov %o4,%o5 ! lasttick = tick -+ set 0,%g4 ! diff -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+.Loop: .word 0x99410000 !rd %tick,%o4 -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ subcc %o1,1,%o1 ! --$cnt -+ bnz .Loop -+ add %o0,4,%o0 ! ++$out -+ -+ retl -+ mov %o3,%o0 -+.type _sparcv9_vis1_instrument_bus,#function -+.size _sparcv9_vis1_instrument_bus,.-_sparcv9_vis1_instrument_bus -+ -+.global _sparcv9_vis1_instrument_bus2 -+.align 8 -+_sparcv9_vis1_instrument_bus2: -+ mov %o1,%o3 ! save cnt -+ sll %o1,2,%o1 ! cnt*=4 -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ mov %o4,%o5 ! lasttick = tick -+ set 0,%g4 ! diff -+ -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ mov %g4,%g5 ! lastdiff=diff -+.Loop2: -+ andn %o0,63,%g1 -+ .word 0xc1985e00 !ldda [%g1]0xf0,%f0 ! block load -+ .word 0x8143e040 !membar #Sync -+ .word 0xc1b85c00 !stda %f0,[%g1]0xe0 ! block store and commit -+ .word 0x8143e040 !membar #Sync -+ ld [%o0],%o4 -+ add %o4,%g4,%g4 -+ .word 0xc9e2100c !cas [%o0],%o4,%g4 -+ -+ subcc %o2,1,%o2 ! --max -+ bz .Ldone2 -+ nop -+ -+ .word 0x99410000 !rd %tick,%o4 ! tick -+ sub %o4,%o5,%g4 ! diff=tick-lasttick -+ mov %o4,%o5 ! lasttick=tick -+ cmp %g4,%g5 -+ mov %g4,%g5 ! lastdiff=diff -+ -+ .word 0x83408000 !rd %ccr,%g1 -+ and %g1,4,%g1 ! isolate zero flag -+ xor %g1,4,%g1 ! flip zero flag -+ -+ subcc %o1,%g1,%o1 ! conditional --$cnt -+ bnz .Loop2 -+ add %o0,%g1,%o0 ! conditional ++$out -+ -+.Ldone2: -+ srl %o1,2,%o1 -+ retl -+ sub %o3,%o1,%o0 -+.type _sparcv9_vis1_instrument_bus2,#function -+.size _sparcv9_vis1_instrument_bus2,.-_sparcv9_vis1_instrument_bus2 -+ - .section ".init",#alloc,#execinstr - call OPENSSL_cpuid_setup - nop -Index: crypto/sparcv9cap.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/sparcv9cap.c openssl-1.0.1e/crypto/sparcv9cap.c ---- openssl-1.0.1e/crypto/sparcv9cap.c 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sparcv9cap.c 2011-07-27 10:48:17.817470000 -0700 -@@ -4,31 +4,55 @@ - #include - #include - #include -+#include - #include - --#define SPARCV9_TICK_PRIVILEGED (1<<0) --#define SPARCV9_PREFER_FPU (1<<1) --#define SPARCV9_VIS1 (1<<2) --#define SPARCV9_VIS2 (1<<3) /* reserved */ --#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ -+#include "sparc_arch.h" - -+#if defined(__GNUC__) && defined(__linux) -+__attribute__((visibility("hidden"))) -+#endif - #ifndef _BOOT --static int OPENSSL_sparcv9cap_P=SPARCV9_TICK_PRIVILEGED; -+unsigned int OPENSSL_sparcv9cap_P[2]={SPARCV9_TICK_PRIVILEGED,0}; - #else --static int OPENSSL_sparcv9cap_P = SPARCV9_VIS1; -+unsigned int OPENSSL_sparcv9cap_P[2]={SPARCV9_VIS1,0}; - #endif - - int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num) - { -+ int bn_mul_mont_vis3(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num); - int bn_mul_mont_fpu(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num); - int bn_mul_mont_int(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0, int num); - -- if (num>=8 && !(num&1) && -- (OPENSSL_sparcv9cap_P&(SPARCV9_PREFER_FPU|SPARCV9_VIS1)) == -- (SPARCV9_PREFER_FPU|SPARCV9_VIS1)) -- return bn_mul_mont_fpu(rp,ap,bp,np,n0,num); -- else -- return bn_mul_mont_int(rp,ap,bp,np,n0,num); -+ if (!(num&1) && num>=6) -+ { -+ if ((num&15)==0 && num<=64 && -+ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== -+ (CFR_MONTMUL|CFR_MONTSQR)) -+ { -+ typedef int (*bn_mul_mont_f)(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_8(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_16(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_24(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ int bn_mul_mont_t4_32(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np,const BN_ULONG *n0); -+ static const bn_mul_mont_f funcs[4] = { -+ bn_mul_mont_t4_8, bn_mul_mont_t4_16, -+ bn_mul_mont_t4_24, bn_mul_mont_t4_32 }; -+ bn_mul_mont_f worker = funcs[num/16-1]; -+ -+ if ((*worker)(rp,ap,bp,np,n0)) return 1; -+ /* retry once and fall back */ -+ if ((*worker)(rp,ap,bp,np,n0)) return 1; -+ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); -+ } -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3)) -+ return bn_mul_mont_vis3(rp,ap,bp,np,n0,num); -+ else if (num>=8 && -+ (OPENSSL_sparcv9cap_P[0]&(SPARCV9_PREFER_FPU|SPARCV9_VIS1)) == -+ (SPARCV9_PREFER_FPU|SPARCV9_VIS1)) -+ return bn_mul_mont_fpu(rp,ap,bp,np,n0,num); -+ } -+ return bn_mul_mont_int(rp,ap,bp,np,n0,num); - } - - unsigned long _sparcv9_rdtick(void); -@@ -36,11 +60,18 @@ - unsigned long _sparcv9_vis1_instrument(void); - void _sparcv9_vis2_probe(void); - void _sparcv9_fmadd_probe(void); -+unsigned long _sparcv9_rdcfr(void); -+void _sparcv9_vis3_probe(void); -+unsigned long _sparcv9_random(void); -+#ifndef _BOOT -+size_t _sparcv9_vis1_instrument_bus(unsigned int *,size_t); -+size_t _sparcv9_vis1_instrument_bus2(unsigned int *,size_t,size_t); -+#endif - - #ifndef _BOOT - unsigned long OPENSSL_rdtsc(void) - { -- if (OPENSSL_sparcv9cap_P&SPARCV9_TICK_PRIVILEGED) -+ if (OPENSSL_sparcv9cap_P[0]&SPARCV9_TICK_PRIVILEGED) - #if defined(__sun) && defined(__SVR4) - return gethrtime(); - #else -@@ -49,6 +80,24 @@ - else - return _sparcv9_rdtick(); - } -+ -+size_t OPENSSL_instrument_bus(unsigned int *out,size_t cnt) -+ { -+ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == -+ SPARCV9_BLK) -+ return _sparcv9_vis1_instrument_bus(out,cnt); -+ else -+ return 0; -+ } -+ -+size_t OPENSSL_instrument_bus2(unsigned int *out,size_t cnt,size_t max) -+ { -+ if ((OPENSSL_sparcv9cap_P[0]&(SPARCV9_TICK_PRIVILEGED|SPARCV9_BLK)) == -+ SPARCV9_BLK) -+ return _sparcv9_vis1_instrument_bus2(out,cnt,max); -+ else -+ return 0; -+ } - #endif - - #if defined(_BOOT) -@@ -58,7 +107,7 @@ - */ - void OPENSSL_cpuid_setup(void) - { -- OPENSSL_sparcv9cap_P = SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_VIS1; - } - - #elif 0 && defined(__sun) && defined(__SVR4) -@@ -85,11 +116,11 @@ - if (!strcmp (name,"SUNW,UltraSPARC") || - !strncmp(name,"SUNW,UltraSPARC-I",17)) /* covers II,III,IV */ - { -- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU|SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU|SPARCV9_VIS1; - - /* %tick is privileged only on UltraSPARC-I/II, but not IIe */ - if (name[14]!='\0' && name[17]!='\0' && name[18]!='\0') -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - - return DI_WALK_TERMINATE; - } -@@ -96,7 +127,7 @@ - /* This is expected to catch remaining UltraSPARCs, such as T1 */ - else if (!strncmp(name,"SUNW,UltraSPARC",15)) - { -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - - return DI_WALK_TERMINATE; - } -@@ -115,7 +146,7 @@ - - if ((e=getenv("OPENSSL_sparcv9cap"))) - { -- OPENSSL_sparcv9cap_P=strtoul(e,NULL,0); -+ OPENSSL_sparcv9cap_P[0]=strtoul(e,NULL,0); - return; - } - -@@ -123,17 +154,17 @@ - { - if (strcmp(si,"sun4v")) - /* FPU is preferred for all CPUs, but US-T1/2 */ -- OPENSSL_sparcv9cap_P |= SPARCV9_PREFER_FPU; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_PREFER_FPU; - } - - if (sysinfo(SI_ISALIST,si,sizeof(si))>0) - { - if (strstr(si,"+vis")) -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1|SPARCV9_BLK; - if (strstr(si,"+vis2")) - { -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - return; - } - } -@@ -193,12 +224,14 @@ - - if ((e=getenv("OPENSSL_sparcv9cap"))) - { -- OPENSSL_sparcv9cap_P=strtoul(e,NULL,0); -+ OPENSSL_sparcv9cap_P[0]=strtoul(e,NULL,0); -+ if ((e=strchr(e,':'))) -+ OPENSSL_sparcv9cap_P[1]=strtoul(e+1,NULL,0); - return; - } - - /* Initial value, fits UltraSPARC-I&II... */ -- OPENSSL_sparcv9cap_P = SPARCV9_PREFER_FPU|SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_PREFER_FPU|SPARCV9_TICK_PRIVILEGED; - - sigfillset(&all_masked); - sigdelset(&all_masked,SIGILL); -@@ -221,20 +254,20 @@ - if (sigsetjmp(common_jmp,1) == 0) - { - _sparcv9_rdtick(); -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; - } - - if (sigsetjmp(common_jmp,1) == 0) - { - _sparcv9_vis1_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1|SPARCV9_BLK; - /* detect UltraSPARC-Tx, see sparccpud.S for details... */ - if (_sparcv9_vis1_instrument() >= 12) -- OPENSSL_sparcv9cap_P &= ~(SPARCV9_VIS1|SPARCV9_PREFER_FPU); -+ OPENSSL_sparcv9cap_P[0] &= ~(SPARCV9_VIS1|SPARCV9_PREFER_FPU); - else - { - _sparcv9_vis2_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; - } - } - -@@ -241,13 +274,53 @@ - if (sigsetjmp(common_jmp,1) == 0) - { - _sparcv9_fmadd_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_FMADD; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; - } - -+ /* -+ * VIS3 flag is tested independently from VIS1, unlike VIS2 that is, -+ * because VIS3 defines even integer instructions. -+ */ -+ if (sigsetjmp(common_jmp,1) == 0) -+ { -+ _sparcv9_vis3_probe(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; -+ } -+ -+ if (sigsetjmp(common_jmp,1) == 0) -+ { -+ (void)_sparcv9_random(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_RANDOM; -+ } -+ -+ /* -+ * In wait for better solution _sparcv9_rdcfr is masked by -+ * VIS3 flag, because it goes to uninterruptable endless -+ * loop on UltraSPARC II running Solaris. Things might be -+ * different on Linux... -+ */ -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && -+ sigsetjmp(common_jmp,1) == 0) -+ { -+ OPENSSL_sparcv9cap_P[1] = (unsigned int)_sparcv9_rdcfr(); -+ } -+ - sigaction(SIGBUS,&bus_oact,NULL); - sigaction(SIGILL,&ill_oact,NULL); - - sigprocmask(SIG_SETMASK,&oset,NULL); -+ -+ if (sizeof(size_t)==8) -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; -+#ifdef __linux -+ else -+ { -+ int ret = syscall(340); -+ -+ if (ret>=0 && ret&1) -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; -+ } -+#endif - } - - #endif -Index: crypto/md5/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/md5/Makefile openssl-1.0.1e/crypto/md5/Makefile ---- openssl-1.0.1e/crypto/md5/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/md5/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -52,6 +52,9 @@ - $(CC) $(CFLAGS) -E asm/md5-ia64.S | \ - $(PERL) -ne 's/;\s+/;\n/g; print;' > $@ - -+md5-sparcv9.S: asm/md5-sparcv9.pl -+ $(PERL) asm/md5-sparcv9.pl $@ $(CFLAGS) -+ - files: - $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO - -Index: crypto/md5/md5_locl.h -=================================================================== -diff -ru openssl-1.0.1e/crypto/md5/md5_locl.h openssl-1.0.1e/crypto/md5/md5_locl.h ---- openssl-1.0.1e/crypto/md5/md5_locl.h 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/md5/md5_locl.h 2011-07-27 10:48:17.817470000 -0700 -@@ -71,6 +71,8 @@ - # define md5_block_data_order md5_block_asm_data_order - # elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64) - # define md5_block_data_order md5_block_asm_data_order -+# elif defined(__sparc) || defined(__sparc__) -+# define md5_block_data_order md5_block_asm_data_order - # endif - #endif - -Index: crypto/sha/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/Makefile openssl-1.0.1e/crypto/sha/Makefile ---- openssl-1.0.1e/crypto/sha/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -68,9 +68,9 @@ - sha1-x86_64.s: asm/sha1-x86_64.pl; $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@ - sha256-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ - sha512-x86_64.s:asm/sha512-x86_64.pl; $(PERL) asm/sha512-x86_64.pl $(PERLASM_SCHEME) $@ --sha1-sparcv9.s: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) --sha256-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) --sha512-sparcv9.s:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) -+sha1-sparcv9.S: asm/sha1-sparcv9.pl; $(PERL) asm/sha1-sparcv9.pl $@ $(CFLAGS) -+sha256-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) -+sha512-sparcv9.S:asm/sha512-sparcv9.pl; $(PERL) asm/sha512-sparcv9.pl $@ $(CFLAGS) - - sha1-ppc.s: asm/sha1-ppc.pl; $(PERL) asm/sha1-ppc.pl $(PERLASM_SCHEME) $@ - sha256-ppc.s: asm/sha512-ppc.pl; $(PERL) asm/sha512-ppc.pl $(PERLASM_SCHEME) $@ -Index: crypto/sha/asm/sha1-sparcv9.pl -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl ---- openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/asm/sha1-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 -@@ -5,6 +5,8 @@ - # project. The module is, however, dual licensed under OpenSSL and - # CRYPTOGAMS licenses depending on where you obtain it. For further - # details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . - # ==================================================================== - - # Performance improvement is not really impressive on pre-T1 CPU: +8% -@@ -18,6 +20,11 @@ - # ensure scalability on UltraSPARC T1, or rather to avoid decay when - # amount of active threads exceeds the number of physical cores. - -+# SPARC T4 SHA1 hardware achieves 3.72 cycles per byte, which is 3.1x -+# faster than software. Multi-process benchmark saturates at 11x -+# single-process result on 8-core processor, or ~9GBps per 2.85GHz -+# socket. -+ - $bits=32; - for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } - if ($bits==64) { $bias=2047; $frame=192; } -@@ -183,11 +190,93 @@ - .register %g3,#scratch - ___ - $code.=<<___; -+#include "sparc_arch.h" -+ - .section ".text",#alloc,#execinstr - -+#ifdef __PIC__ -+SPARC_PIC_THUNK(%g1) -+#endif -+ - .align 32 - .globl sha1_block_data_order - sha1_block_data_order: -+ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) -+ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] -+ -+ andcc %g1, CFR_SHA1, %g0 -+ be .Lsoftware -+ nop -+ -+ ld [%o0 + 0x00], %f0 ! load context -+ ld [%o0 + 0x04], %f1 -+ ld [%o0 + 0x08], %f2 -+ andcc %o1, 0x7, %g0 -+ ld [%o0 + 0x0c], %f3 -+ bne,pn %icc, .Lhwunaligned -+ ld [%o0 + 0x10], %f4 -+ -+.Lhw_loop: -+ ldd [%o1 + 0x00], %f8 -+ ldd [%o1 + 0x08], %f10 -+ ldd [%o1 + 0x10], %f12 -+ ldd [%o1 + 0x18], %f14 -+ ldd [%o1 + 0x20], %f16 -+ ldd [%o1 + 0x28], %f18 -+ ldd [%o1 + 0x30], %f20 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x38], %f22 -+ add %o1, 0x40, %o1 -+ -+ .word 0x81b02820 ! SHA1 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhw_loop -+ nop -+ -+.Lhwfinish: -+ st %f0, [%o0 + 0x00] ! store context -+ st %f1, [%o0 + 0x04] -+ st %f2, [%o0 + 0x08] -+ st %f3, [%o0 + 0x0c] -+ retl -+ st %f4, [%o0 + 0x10] -+ -+.align 8 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f10 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f12 -+ ldd [%o1 + 0x10], %f14 -+ ldd [%o1 + 0x18], %f16 -+ ldd [%o1 + 0x20], %f18 -+ ldd [%o1 + 0x28], %f20 -+ ldd [%o1 + 0x30], %f22 -+ ldd [%o1 + 0x38], %f24 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x40], %f26 -+ add %o1, 0x40, %o1 -+ -+ faligndata %f10, %f12, %f8 -+ faligndata %f12, %f14, %f10 -+ faligndata %f14, %f16, %f12 -+ faligndata %f16, %f18, %f14 -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ -+ .word 0x81b02820 ! SHA1 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f26, %f26, %f10 ! %f10=%f26 -+ -+ ba .Lhwfinish -+ nop -+ -+.align 16 -+.Lsoftware: - save %sp,-$frame,%sp - sllx $len,6,$len - add $inp,$len,$len -@@ -279,6 +368,62 @@ - .align 4 - ___ - --$code =~ s/\`([^\`]*)\`/eval $1/gem; --print $code; -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my $ref,$opf; -+my %visopf = ( "faligndata" => 0x048, -+ "for" => 0x07c ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+sub unalignaddr { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my $ref="$mnemonic\t$rs1,$rs2,$rd"; -+ -+ foreach ($rs1,$rs2,$rd) { -+ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } -+ else { return $ref; } -+ } -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00300|$rd<<25|$rs1<<14|$rs2, -+ $ref; -+} -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/ge; -+ -+ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ -+ &unvis($1,$2,$3,$4) -+ /ge; -+ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ -+ &unalignaddr($1,$2,$3,$4) -+ /ge; -+ -+ print $_,"\n"; -+} -+ - close STDOUT; - -Index: crypto/sha/asm/sha512-sparcv9.pl -=================================================================== -diff -ru openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl ---- openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/sha/asm/sha512-sparcv9.pl 2011-07-27 10:48:17.817470000 -0700 -@@ -5,6 +5,8 @@ - # project. The module is, however, dual licensed under OpenSSL and - # CRYPTOGAMS licenses depending on where you obtain it. For further - # details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . - # ==================================================================== - - # SHA256 performance improvement over compiler generated code varies -@@ -41,6 +43,12 @@ - # loads are always slower than one 64-bit load. Once again this - # is unlike pre-T1 UltraSPARC, where, if scheduled appropriately, - # 2x32-bit loads can be as fast as 1x64-bit ones. -+# -+# SPARC T4 SHA256/512 hardware achieves 3.17/2.01 cycles per byte, -+# which is 9.3x/11.1x faster than software. Multi-process benchmark -+# saturates at 11.5x single-process result on 8-core processor, or -+# ~11/16GBps per 2.85GHz socket. -+ - - $bits=32; - for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } -@@ -386,6 +394,8 @@ - .register %g3,#scratch - ___ - $code.=<<___; -+#include "sparc_arch.h" -+ - .section ".text",#alloc,#execinstr - - .align 64 -@@ -457,8 +467,196 @@ - } - $code.=<<___; - .size K${label},.-K${label} -+ -+#ifdef __PIC__ -+SPARC_PIC_THUNK(%g1) -+#endif -+ - .globl sha${label}_block_data_order -+.align 32 - sha${label}_block_data_order: -+ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) -+ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] -+ -+ andcc %g1, CFR_SHA${label}, %g0 -+ be .Lsoftware -+ nop -+___ -+$code.=<<___ if ($SZ==8); # SHA512 -+ ldd [%o0 + 0x00], %f0 ! load context -+ ldd [%o0 + 0x08], %f2 -+ ldd [%o0 + 0x10], %f4 -+ ldd [%o0 + 0x18], %f6 -+ ldd [%o0 + 0x20], %f8 -+ ldd [%o0 + 0x28], %f10 -+ andcc %o1, 0x7, %g0 -+ ldd [%o0 + 0x30], %f12 -+ bne,pn %icc, .Lhwunaligned -+ ldd [%o0 + 0x38], %f14 -+ -+.Lhwaligned_loop: -+ ldd [%o1 + 0x00], %f16 -+ ldd [%o1 + 0x08], %f18 -+ ldd [%o1 + 0x10], %f20 -+ ldd [%o1 + 0x18], %f22 -+ ldd [%o1 + 0x20], %f24 -+ ldd [%o1 + 0x28], %f26 -+ ldd [%o1 + 0x30], %f28 -+ ldd [%o1 + 0x38], %f30 -+ ldd [%o1 + 0x40], %f32 -+ ldd [%o1 + 0x48], %f34 -+ ldd [%o1 + 0x50], %f36 -+ ldd [%o1 + 0x58], %f38 -+ ldd [%o1 + 0x60], %f40 -+ ldd [%o1 + 0x68], %f42 -+ ldd [%o1 + 0x70], %f44 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x78], %f46 -+ add %o1, 0x80, %o1 -+ -+ .word 0x81b02860 ! SHA512 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwaligned_loop -+ nop -+ -+.Lhwfinish: -+ std %f0, [%o0 + 0x00] ! store context -+ std %f2, [%o0 + 0x08] -+ std %f4, [%o0 + 0x10] -+ std %f6, [%o0 + 0x18] -+ std %f8, [%o0 + 0x20] -+ std %f10, [%o0 + 0x28] -+ std %f12, [%o0 + 0x30] -+ retl -+ std %f14, [%o0 + 0x38] -+ -+.align 16 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f18 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f20 -+ ldd [%o1 + 0x10], %f22 -+ ldd [%o1 + 0x18], %f24 -+ ldd [%o1 + 0x20], %f26 -+ ldd [%o1 + 0x28], %f28 -+ ldd [%o1 + 0x30], %f30 -+ ldd [%o1 + 0x38], %f32 -+ ldd [%o1 + 0x40], %f34 -+ ldd [%o1 + 0x48], %f36 -+ ldd [%o1 + 0x50], %f38 -+ ldd [%o1 + 0x58], %f40 -+ ldd [%o1 + 0x60], %f42 -+ ldd [%o1 + 0x68], %f44 -+ ldd [%o1 + 0x70], %f46 -+ ldd [%o1 + 0x78], %f48 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x80], %f50 -+ add %o1, 0x80, %o1 -+ -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ faligndata %f26, %f28, %f24 -+ faligndata %f28, %f30, %f26 -+ faligndata %f30, %f32, %f28 -+ faligndata %f32, %f34, %f30 -+ faligndata %f34, %f36, %f32 -+ faligndata %f36, %f38, %f34 -+ faligndata %f38, %f40, %f36 -+ faligndata %f40, %f42, %f38 -+ faligndata %f42, %f44, %f40 -+ faligndata %f44, %f46, %f42 -+ faligndata %f46, %f48, %f44 -+ faligndata %f48, %f50, %f46 -+ -+ .word 0x81b02860 ! SHA512 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f50, %f50, %f18 ! %f18=%f50 -+ -+ ba .Lhwfinish -+ nop -+___ -+$code.=<<___ if ($SZ==4); # SHA256 -+ ld [%o0 + 0x00], %f0 -+ ld [%o0 + 0x04], %f1 -+ ld [%o0 + 0x08], %f2 -+ ld [%o0 + 0x0c], %f3 -+ ld [%o0 + 0x10], %f4 -+ ld [%o0 + 0x14], %f5 -+ andcc %o1, 0x7, %g0 -+ ld [%o0 + 0x18], %f6 -+ bne,pn %icc, .Lhwunaligned -+ ld [%o0 + 0x1c], %f7 -+ -+.Lhwloop: -+ ldd [%o1 + 0x00], %f8 -+ ldd [%o1 + 0x08], %f10 -+ ldd [%o1 + 0x10], %f12 -+ ldd [%o1 + 0x18], %f14 -+ ldd [%o1 + 0x20], %f16 -+ ldd [%o1 + 0x28], %f18 -+ ldd [%o1 + 0x30], %f20 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x38], %f22 -+ add %o1, 0x40, %o1 -+ -+ .word 0x81b02840 ! SHA256 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwloop -+ nop -+ -+.Lhwfinish: -+ st %f0, [%o0 + 0x00] ! store context -+ st %f1, [%o0 + 0x04] -+ st %f2, [%o0 + 0x08] -+ st %f3, [%o0 + 0x0c] -+ st %f4, [%o0 + 0x10] -+ st %f5, [%o0 + 0x14] -+ st %f6, [%o0 + 0x18] -+ retl -+ st %f7, [%o0 + 0x1c] -+ -+.align 8 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f10 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f12 -+ ldd [%o1 + 0x10], %f14 -+ ldd [%o1 + 0x18], %f16 -+ ldd [%o1 + 0x20], %f18 -+ ldd [%o1 + 0x28], %f20 -+ ldd [%o1 + 0x30], %f22 -+ ldd [%o1 + 0x38], %f24 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x40], %f26 -+ add %o1, 0x40, %o1 -+ -+ faligndata %f10, %f12, %f8 -+ faligndata %f12, %f14, %f10 -+ faligndata %f14, %f16, %f12 -+ faligndata %f16, %f18, %f14 -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ -+ .word 0x81b02840 ! SHA256 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f26, %f26, %f10 ! %f10=%f26 -+ -+ ba .Lhwfinish -+ nop -+___ -+$code.=<<___; -+.align 16 -+.Lsoftware: - save %sp,`-$frame-$locals`,%sp - and $inp,`$align-1`,$tmp31 - sllx $len,`log(16*$SZ)/log(2)`,$len -@@ -589,6 +787,62 @@ - .align 4 - ___ - --$code =~ s/\`([^\`]*)\`/eval $1/gem; --print $code; -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my $ref,$opf; -+my %visopf = ( "faligndata" => 0x048, -+ "for" => 0x07c ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+sub unalignaddr { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my $ref="$mnemonic\t$rs1,$rs2,$rd"; -+ -+ foreach ($rs1,$rs2,$rd) { -+ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } -+ else { return $ref; } -+ } -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00300|$rd<<25|$rs1<<14|$rs2, -+ $ref; -+} -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/ge; -+ -+ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ -+ &unvis($1,$2,$3,$4) -+ /ge; -+ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ -+ &unalignaddr($1,$2,$3,$4) -+ /ge; -+ -+ print $_,"\n"; -+} -+ - close STDOUT; -Index: crypto/des/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/des/Makefile.orig openssl-1.0.1e/crypto/des/Makefile ---- a/crypto/des/Makefile -+++ b/crypto/des/Makefile -@@ -61,6 +61,8 @@ des: des.o cbc3_enc.o lib - - des_enc-sparc.S: asm/des_enc.m4 - m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S -+dest4-sparcv9.s: asm/dest4-sparcv9.pl -+ $(PERL) asm/dest4-sparcv9.pl $(CFLAGS) > $@ - - des-586.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl - $(PERL) asm/des-586.pl $(PERLASM_SCHEME) $(CFLAGS) > $@ -Index: crypto/evp/e_des.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/evp/e_des.c.orig openssl-1.0.1e/crypto/evp/e_des.c ---- a/crypto/evp/e_des.c -+++ b/crypto/evp/e_des.c -@@ -65,6 +65,30 @@ - #include - #include - -+typedef struct -+ { -+ union { double align; DES_key_schedule ks; } ks; -+ union { -+ void (*cbc)(const void *,void *,size_t,const void *,void *); -+ } stream; -+ } EVP_DES_KEY; -+ -+#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+/* ---------^^^ this is not a typo, just a way to detect that -+ * assembler support was in general requested... */ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) -+ -+void des_t4_key_expand(const void *key, DES_key_schedule *ks); -+void des_t4_cbc_encrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+void des_t4_cbc_decrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+#endif -+ - static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc); - static int des_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); -@@ -99,6 +123,13 @@ static int des_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - static int des_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl) - { -+ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; -+ -+ if (dat->stream.cbc) -+ { -+ (*dat->stream.cbc)(in,out,inl,&dat->ks.ks,ctx->iv); -+ return 1; -+ } - while(inl>=EVP_MAXCHUNK) - { - DES_ncbc_encrypt(in, out, (long)EVP_MAXCHUNK, ctx->cipher_data, -@@ -176,18 +207,18 @@ - return 1; - } - --BLOCK_CIPHER_defs(des, DES_key_schedule, NID_des, 8, 8, 8, 64, -+BLOCK_CIPHER_defs(des, EVP_DES_KEY, NID_des, 8, 8, 8, 64, - EVP_CIPH_RAND_KEY, des_init_key, NULL, - EVP_CIPHER_set_asn1_iv, - EVP_CIPHER_get_asn1_iv, - des_ctrl) - --BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,1, -+BLOCK_CIPHER_def_cfb(des,EVP_DES_KEY,NID_des,8,8,1, - EVP_CIPH_RAND_KEY, des_init_key,NULL, - EVP_CIPHER_set_asn1_iv, - EVP_CIPHER_get_asn1_iv,des_ctrl) - --BLOCK_CIPHER_def_cfb(des,DES_key_schedule,NID_des,8,8,8, -+BLOCK_CIPHER_def_cfb(des,EVP_DES_KEY,NID_des,8,8,8, - EVP_CIPH_RAND_KEY,des_init_key,NULL, - EVP_CIPHER_set_asn1_iv, - EVP_CIPHER_get_asn1_iv,des_ctrl) -@@ -196,8 +227,25 @@ static int des_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ EVP_DES_KEY *dat = (EVP_DES_KEY *)ctx->cipher_data; -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) -+ { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) -+ { -+ des_t4_key_expand(key,&dat->ks.ks); -+ dat->stream.cbc = enc ? des_t4_cbc_encrypt : -+ des_t4_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - #ifdef EVP_CHECK_DES_KEY -- if(DES_set_key_checked(deskey,ctx->cipher_data) != 0) -+ if(DES_set_key_checked(deskey,dat->ks.ks) != 0) - return 0; - #else - DES_set_key_unchecked(deskey,ctx->cipher_data); -Index: crypto/evp/e_des3.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/evp/e_des3.c.orig openssl-1.0.1e/crypto/evp/e_des3.c ---- a/crypto/evp/e_des3.c -+++ b/crypto/evp/e_des3.c -@@ -65,6 +65,33 @@ - #include - #include - -+typedef struct -+ { -+ union { double align; DES_key_schedule ks[3]; } ks; -+ union { -+ void (*cbc)(const void *,void *,size_t,const void *,void *); -+ } stream; -+ } DES_EDE_KEY; -+#define ks1 ks.ks[0] -+#define ks2 ks.ks[1] -+#define ks3 ks.ks[2] -+ -+#if defined(AES_ASM) && (defined(__sparc) || defined(__sparc__)) -+/* ---------^^^ this is not a typo, just a way to detect that -+ * assembler support was in general requested... */ -+#include "sparc_arch.h" -+ -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+ -+#define SPARC_DES_CAPABLE (OPENSSL_sparcv9cap_P[1] & CFR_DES) -+ -+void des_t4_key_expand(const void *key, DES_key_schedule *ks); -+void des_t4_ede3_cbc_encrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+void des_t4_ede3_cbc_decrypt(const void *inp,void *out,size_t len, -+ DES_key_schedule *ks,unsigned char iv[8]); -+#endif -+ - #ifndef OPENSSL_FIPS - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, -@@ -75,13 +100,6 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - - static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr); - --typedef struct -- { -- DES_key_schedule ks1;/* key schedule */ -- DES_key_schedule ks2;/* key schedule (for ede) */ -- DES_key_schedule ks3;/* key schedule (for ede3) */ -- } DES_EDE_KEY; -- - #define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data) - - /* Because of various casts and different args can't use IMPLEMENT_BLOCK_CIPHER */ -@@ -121,6 +141,8 @@ static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl) - { -+ DES_EDE_KEY *dat = data(ctx); -+ - #ifdef KSSL_DEBUG - { - int i; -@@ -132,10 +154,16 @@ - printf("\n"); - } - #endif /* KSSL_DEBUG */ -+ if (dat->stream.cbc) -+ { -+ (*dat->stream.cbc)(in,out,inl,&dat->ks,ctx->iv); -+ return 1; -+ } -+ - while (inl>=EVP_MAXCHUNK) - { - DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, -- &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, -+ &dat->ks1, &dat->ks2, &dat->ks3, - (DES_cblock *)ctx->iv, ctx->encrypt); - inl-=EVP_MAXCHUNK; - in +=EVP_MAXCHUNK; -@@ -143,7 +169,7 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - if (inl) - DES_ede3_cbc_encrypt(in, out, (long)inl, -- &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, -+ &dat->ks1, &dat->ks2, &dat->ks3, - (DES_cblock *)ctx->iv, ctx->encrypt); - return 1; - } -@@ -208,9 +234,8 @@ static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - } - - BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede_init_key, NULL, NULL, NULL, - des3_ctrl) - - #define des_ede3_cfb64_cipher des_ede_cfb64_cipher -@@ -219,37 +246,53 @@ - #define des_ede3_ecb_cipher des_ede_ecb_cipher - - BLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64, -- EVP_CIPH_RAND_KEY, des_ede3_init_key, NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, -- des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,1, -- EVP_CIPH_RAND_KEY, des_ede3_init_key,NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, -- des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,8, -- EVP_CIPH_RAND_KEY, des_ede3_init_key,NULL, -- EVP_CIPHER_set_asn1_iv, -- EVP_CIPHER_get_asn1_iv, -- des3_ctrl) -+ EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1, -+ des_ede3_init_key, NULL, NULL, NULL, -+ des3_ctrl) - - static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) -+ { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) -+ { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ memcpy(&dat->ks3,&dat->ks1,sizeof(dat->ks1)); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - #ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0],&data(ctx)->ks1) -- !! DES_set_key_checked(&deskey[1],&data(ctx)->ks2)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ !! DES_set_key_checked(&deskey[1],&dat->ks2)) - return 0; - #else -- DES_set_key_unchecked(&deskey[0],&data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1],&data(ctx)->ks2); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); - #endif -- memcpy(&data(ctx)->ks3,&data(ctx)->ks1, -- sizeof(data(ctx)->ks1)); -+ memcpy(&dat->ks3,&dat->ks1, -+ sizeof(dat->ks1)); - return 1; - } - -@@ -257,6 +300,8 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc) - { - DES_cblock *deskey = (DES_cblock *)key; -+ DES_EDE_KEY *dat = data(ctx); -+ - #ifdef KSSL_DEBUG - { - int i; -@@ -268,15 +313,32 @@ static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, - } - #endif /* KSSL_DEBUG */ - -+ dat->stream.cbc = NULL; -+#if defined(SPARC_DES_CAPABLE) -+ if (SPARC_DES_CAPABLE) -+ { -+ int mode = ctx->cipher->flags & EVP_CIPH_MODE; -+ -+ if (mode == EVP_CIPH_CBC_MODE) -+ { -+ des_t4_key_expand(&deskey[0],&dat->ks1); -+ des_t4_key_expand(&deskey[1],&dat->ks2); -+ des_t4_key_expand(&deskey[2],&dat->ks3); -+ dat->stream.cbc = enc ? des_t4_ede3_cbc_encrypt : -+ des_t4_ede3_cbc_decrypt; -+ return 1; -+ } -+ } -+#endif - #ifdef EVP_CHECK_DES_KEY -- if (DES_set_key_checked(&deskey[0],&data(ctx)->ks1) -- || DES_set_key_checked(&deskey[1],&data(ctx)->ks2) -- || DES_set_key_checked(&deskey[2],&data(ctx)->ks3)) -+ if (DES_set_key_checked(&deskey[0],&dat->ks1) -+ || DES_set_key_checked(&deskey[1],&dat->ks2) -+ || DES_set_key_checked(&deskey[2],&dat->ks3)) - return 0; - #else -- DES_set_key_unchecked(&deskey[0],&data(ctx)->ks1); -- DES_set_key_unchecked(&deskey[1],&data(ctx)->ks2); -- DES_set_key_unchecked(&deskey[2],&data(ctx)->ks3); -+ DES_set_key_unchecked(&deskey[0],&dat->ks1); -+ DES_set_key_unchecked(&deskey[1],&dat->ks2); -+ DES_set_key_unchecked(&deskey[2],&dat->ks3); - #endif - return 1; - } -Index: openssl/crypto/bn/Makefile -=================================================================== -diff -ru openssl-1.0.1e/crypto/bn/Makefile openssl-1.0.1e/crypto/bn/Makefile.new ---- openssl-1.0.1e/crypto/bn/Makefile 2011-05-24 17:02:24.000000000 -0700 -+++ openssl-1.0.1e/crypto/bn/Makefile 2011-07-27 10:48:17.817470000 -0700 -@@ -77,6 +77,12 @@ - $(PERL) asm/sparcv9a-mont.pl $(CFLAGS) > $@ - sparcv9-mont.s: asm/sparcv9-mont.pl - $(PERL) asm/sparcv9-mont.pl $(CFLAGS) > $@ -+vis3-mont.s: asm/vis3-mont.pl -+ $(PERL) asm/vis3-mont.pl $(CFLAGS) > $@ -+sparct4-mont.S: asm/sparct4-mont.pl -+ $(PERL) asm/sparct4-mont.pl $(CFLAGS) > $@ -+sparcv9-gf2m.S: asm/sparcv9-gf2m.pl -+ $(PERL) asm/sparcv9-gf2m.pl $(CFLAGS) > $@ - - bn-mips3.o: asm/mips3.s - @if [ "$(CC)" = "gcc" ]; then \ -Index: openssl/crypto/bn/bn_exp.c -=================================================================== -diff -ru openssl-1.0.1e/crypto/bn/bn_exp.c openssl-1.0.1e/crypto/bn/bn_exp.c.new ---- bn_exp.c 2011/10/29 19:25:13 1.38 -+++ bn_exp.c 2012/11/17 10:34:11 1.39 -@@ -123,8 +123,15 @@ - # ifndef alloca - # define alloca(s) __builtin_alloca((s)) - # endif -+#else -+#include - #endif - -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+# include "sparc_arch.h" -+extern unsigned int OPENSSL_sparcv9cap_P[]; -+#endif -+ - /* maximum precomputation table size for *variable* sliding windows */ - #define TABLE_SIZE 32 - -@@ -467,7 +467,15 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - wstart=bits-1; /* The top bit of the window */ - wend=0; /* The bottom bit of the window */ - -+#if 1 /* by Shay Gueron's suggestion */ -+ j = mont->N.top; /* borrow j */ -+ if (bn_wexpand(r,j) == NULL) goto err; -+ r->d[0] = (0-m->d[0])&BN_MASK2; /* 2^(top*BN_BITS2) - m */ -+ for(i=1;id[i] = (~m->d[i])&BN_MASK2; -+ r->top = j; -+#else - if (!BN_to_montgomery(r,BN_value_one(),mont,ctx)) goto err; -+#endif - for (;;) - { - if (BN_is_bit_set(p,wstart) == 0) -@@ -519,6 +527,17 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - start=0; - if (wstart < 0) break; - } -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+ if (OPENSSL_sparcv9cap_P[0]&(SPARCV9_VIS3|SPARCV9_PREFER_FPU)) -+ { -+ j = mont->N.top; /* borrow j */ -+ val[0]->d[0] = 1; /* borrow val[0] */ -+ for (i=1;id[i] = 0; -+ val[0]->top = j; -+ if (!BN_mod_mul_montgomery(rr,r,val[0],mont,ctx)) goto err; -+ } -+ else -+#endif - if (!BN_from_montgomery(rr,r,mont,ctx)) goto err; - ret=1; - err: -@@ -528,6 +547,28 @@ err: - return(ret); - } - -+#if defined(OPENSSL_BN_ASM_MONT) && (defined(__sparc__) || defined(__sparc)) -+static BN_ULONG bn_get_bits(const BIGNUM *a, int bitpos) -+ { -+ BN_ULONG ret=0; -+ int wordpos; -+ -+ wordpos = bitpos/BN_BITS2; -+ bitpos %= BN_BITS2; -+ if (wordpos>=0 && wordpos < a->top) -+ { -+ ret = a->d[wordpos]&BN_MASK2; -+ if (bitpos) -+ { -+ ret >>= bitpos; -+ if (++wordpos < a->top) -+ ret |= a->d[wordpos]<<(BN_BITS2-bitpos); -+ } -+ } -+ -+ return ret&BN_MASK2; -+} -+#endif - - /* BN_mod_exp_mont_consttime() stores the precomputed powers in a specific layout - * so that accessing any of these table values shows the same access pattern as far -@@ -587,6 +592,9 @@ - int powerbufLen = 0; - unsigned char *powerbuf=NULL; - BIGNUM tmp, am; -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ unsigned int t4=0; -+#endif - - bn_check_top(a); - bn_check_top(p); -@@ -621,9 +629,18 @@ - - /* Get the window size to use with size of p. */ - window = BN_window_bits_for_ctime_exponent_size(bits); -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ if (window>=5 && (top&15)==0 && top<=64 && -+ (OPENSSL_sparcv9cap_P[1]&(CFR_MONTMUL|CFR_MONTSQR))== -+ (CFR_MONTMUL|CFR_MONTSQR) && -+ (t4=OPENSSL_sparcv9cap_P[0])) -+ window=5; -+ else -+#endif - #if defined(OPENSSL_BN_ASM_MONT5) - if (window==6 && bits<=1024) window=5; /* ~5% improvement of 2048-bit RSA sign */ - #endif -+ (void)0; - - /* Allocate a buffer large enough to hold all of the pre-computed - * powers of am, am itself and tmp. -@@ -656,13 +715,13 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - tmp.flags = am.flags = BN_FLG_STATIC_DATA; - - /* prepare a^0 in Montgomery domain */ --#if 1 -- if (!BN_to_montgomery(&tmp,BN_value_one(),mont,ctx)) goto err; --#else -+#if 1 /* by Shay Gueron's suggestion */ - tmp.d[0] = (0-m->d[0])&BN_MASK2; /* 2^(top*BN_BITS2) - m */ - for (i=1;id[i])&BN_MASK2; - tmp.top = top; -+#else -+ if (!BN_to_montgomery(&tmp,BN_value_one(),mont,ctx)) goto err; - #endif - - /* prepare a^1 in Montgomery domain */ -@@ -673,6 +690,121 @@ - } - else if (!BN_to_montgomery(&am,a,mont,ctx)) goto err; - -+#if defined(OPENSSL_BN_ASM_MONT) && defined(__sparc) -+ if (t4) -+ { -+ typedef int (*bn_pwr5_mont_f)(BN_ULONG *tp,const BN_ULONG *np, @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Tue Dec 22 13:06:15 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Tue, 22 Dec 2015 12:06:15 +0000 Subject: SF.net SVN: gar:[25493] csw/mgar/pkg/ca_certificates/trunk Message-ID: <3pPxGV2lBmz1Kk@mail.opencsw.org> Revision: 25493 http://sourceforge.net/p/gar/code/25493 Author: janholzh Date: 2015-12-22 12:06:14 +0000 (Tue, 22 Dec 2015) Log Message: ----------- ca_certificates/trunk: update to new certs Modified Paths: -------------- csw/mgar/pkg/ca_certificates/trunk/Makefile csw/mgar/pkg/ca_certificates/trunk/checksums Added Paths: ----------- csw/mgar/pkg/ca_certificates/trunk/files/LICENSE Modified: csw/mgar/pkg/ca_certificates/trunk/Makefile =================================================================== --- csw/mgar/pkg/ca_certificates/trunk/Makefile 2015-12-22 11:33:41 UTC (rev 25492) +++ csw/mgar/pkg/ca_certificates/trunk/Makefile 2015-12-22 12:06:14 UTC (rev 25493) @@ -28,13 +28,15 @@ ###### Upstream and opencsw files information ####### MASTER_SITES = http://hg.mozilla.org/mozilla-central/raw-file/default/security/nss/lib/ckfw/builtins/ -DISTFILES = certdata.txt certdata2pem.pl update-ca-certificates ca-certificates.conf README.CSW +DISTFILES = certdata.txt certdata2pem.pl update-ca-certificates ca-certificates.conf README.CSW LICENSE DISTFILES += CSWcacertificates.postinstall CSWcacertificates.postremove PRESERVECONF = $(sysconfdir)/ca-certificates.conf MIGRATE_FILES = ca-certificates.conf +LICENSE = LICENSE + ##### Build and installation information ##### CONFIGURE_SCRIPTS = @@ -54,15 +56,16 @@ done; \ done -$(WORKDIR)/LICENSE: $(WORKDIR)/certdata.txt - sed -ne '/BEGIN LICENSE BLOCK/,/END LICENSE BLOCK/p' "$(WORKDIR)/certdata.txt" | grep -v "LICENSE BLOCK" \ - > "$(WORKDIR)/LICENSE" +#$(WORKDIR)/LICENSE: $(WORKDIR)/certdata.txt +# head -4 "$(WORKDIR)/certdata.txt" \ +# > "$(WORKDIR)/LICENSE" install-certificates: $(WORKDIR)/certdata.txt ginstall -d "$(DESTDIR)/$(sharedstatedir)/$(NAME)/mozilla" cd "$(DESTDIR)/$(sharedstatedir)/$(NAME)/mozilla" && perl "$(CURDIR)/$(WORKDIR)/certdata2pem.pl" < "$(CURDIR)/$(WORKDIR)/certdata.txt" -install-custom: install-certificates $(WORKDIR)/hash.db $(WORKDIR)/LICENSE +#install-custom: install-certificates $(WORKDIR)/hash.db $(WORKDIR)/LICENSE +install-custom: install-certificates $(WORKDIR)/hash.db ginstall -d "$(DESTDIR)/$(sysconfdir)/ssl" ginstall -D "$(WORKDIR)/ca-certificates.conf" "$(DESTDIR)/$(sysconfdir)/ca-certificates.conf" ginstall -d "$(DESTDIR)/$(sysconfdir)/ssl/certs" @@ -70,7 +73,7 @@ ginstall -D "$(WORKDIR)/update-ca-certificates" "$(DESTDIR)/$(sbindir)/update-ca-certificates" ginstall -D "$(WORKDIR)/hash.db" "$(DESTDIR)/$(sharedstatedir)/$(NAME)/hash.db" ginstall -D "$(WORKDIR)/README.CSW" "$(DESTDIR)/$(docdir)/$(NAME)/README.CSW" - ginstall -D "$(WORKDIR)/LICENSE" "$(DESTDIR)/$(docdir)/$(NAME)/license" + #ginstall -D "$(WORKDIR)/LICENSE" "$(DESTDIR)/$(docdir)/$(NAME)/license" ginstall -d "$(PKGROOT)/$(prefix)/etc/ssl" ( cd "$(PKGROOT)/$(prefix)/etc/ssl/" && ln -s "../../../..$(sysconfdir)/ssl/certs" ) Modified: csw/mgar/pkg/ca_certificates/trunk/checksums =================================================================== --- csw/mgar/pkg/ca_certificates/trunk/checksums 2015-12-22 11:33:41 UTC (rev 25492) +++ csw/mgar/pkg/ca_certificates/trunk/checksums 2015-12-22 12:06:14 UTC (rev 25493) @@ -1 +1 @@ -c8fa899f4abbef043ea2b4143a78c935 certdata.txt +e4686896732c382a7ee856426b6da398 certdata.txt Added: csw/mgar/pkg/ca_certificates/trunk/files/LICENSE =================================================================== --- csw/mgar/pkg/ca_certificates/trunk/files/LICENSE (rev 0) +++ csw/mgar/pkg/ca_certificates/trunk/files/LICENSE 2015-12-22 12:06:14 UTC (rev 25493) @@ -0,0 +1,4 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 13:19:23 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 12:19:23 +0000 Subject: SF.net SVN: gar:[25494] csw/mgar/pkg/cpan Message-ID: <3pPxYf0CrMz1NF@mail.opencsw.org> Revision: 25494 http://sourceforge.net/p/gar/code/25494 Author: dmichelsen Date: 2015-12-22 12:19:22 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/Test-Harness/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Test-Harness/ csw/mgar/pkg/cpan/Test-Harness/branches/ csw/mgar/pkg/cpan/Test-Harness/tags/ csw/mgar/pkg/cpan/Test-Harness/trunk/ csw/mgar/pkg/cpan/Test-Harness/trunk/Makefile csw/mgar/pkg/cpan/Test-Harness/trunk/checksums csw/mgar/pkg/cpan/Test-Harness/trunk/files/ Index: csw/mgar/pkg/cpan/Test-Harness/trunk =================================================================== --- csw/mgar/pkg/cpan/Test-Harness/trunk 2015-12-22 12:06:14 UTC (rev 25493) +++ csw/mgar/pkg/cpan/Test-Harness/trunk 2015-12-22 12:19:22 UTC (rev 25494) Property changes on: csw/mgar/pkg/cpan/Test-Harness/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,2 ## +work + Added: csw/mgar/pkg/cpan/Test-Harness/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Test-Harness/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Test-Harness/trunk/Makefile 2015-12-22 12:19:22 UTC (rev 25494) @@ -0,0 +1,20 @@ +NAME = Test-Harness +VERSION = 3.35 +CATEGORIES = cpan +GARTYPE = v2 +AUTHOR = LEONT + +DESCRIPTION = Unknown +define BLURB +endef + +CATALOG_RELEASE = unstable + +LICENSE_TEXT = This module is licensed under the perl license + +PACKAGES += CSWpm-test-harness +CATALOGNAME_CSWpm-test-harness = pm_test_harness +SPKG_DESC_CSWpm-test-harness = Run Perl standard test scripts with statistics +ARCHALL_CSWpm-test-harness = 1 + +include gar/category.mk Added: csw/mgar/pkg/cpan/Test-Harness/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Test-Harness/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Test-Harness/trunk/checksums 2015-12-22 12:19:22 UTC (rev 25494) @@ -0,0 +1 @@ +2a6010bca2ad78e094d629eea6afd7d9 Test-Harness-3.35.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 13:28:36 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 12:28:36 +0000 Subject: SF.net SVN: gar:[25495] csw/mgar/pkg/cpan/Module-Build-Tiny/trunk Message-ID: <3pPxmG70MNz1Qd@mail.opencsw.org> Revision: 25495 http://sourceforge.net/p/gar/code/25495 Author: dmichelsen Date: 2015-12-22 12:28:36 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/Module-Build-Tiny/trunk: Update to 0.039 Modified Paths: -------------- csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/Makefile csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/checksums Modified: csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/Makefile 2015-12-22 12:19:22 UTC (rev 25494) +++ csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/Makefile 2015-12-22 12:28:36 UTC (rev 25495) @@ -1,5 +1,5 @@ NAME = Module-Build-Tiny -VERSION = 0.025 +VERSION = 0.039 CATEGORIES = cpan GARTYPE = v2 AUTHOR = LEONT @@ -20,9 +20,14 @@ RUNTIME_DEP_PKGS_CSWpm-module-build-tiny += CSWpm-extutils-installpaths RUNTIME_DEP_PKGS_CSWpm-module-build-tiny += CSWpm-extutils-helpers RUNTIME_DEP_PKGS_CSWpm-module-build-tiny += CSWpm-cpan-meta +# RUNTIME_DEP_PKGS_CSWpm-module-build-tiny += CSWpm-test-harness RUNTIME_DEP_PKGS_CSWpm-module-build-tiny += CSWpm-extutils-config RUNTIME_DEP_PKGS_CSWpm-module-build-tiny += CSWpm-json-pp +# These are just examples +CHECKPKG_OVERRIDES_CSWpm-module-build-tiny += file-with-bad-content|/usr/local|root/opt/csw/lib/perl5/site_perl/Module/Build/Tiny.pm +CHECKPKG_OVERRIDES_CSWpm-module-build-tiny += file-with-bad-content|/usr/local|root/opt/csw/man/man3/Module::Build::Tiny.3perl + # Honour https://rt.cpan.org/Ticket/Display.html?id=86240 PERLBUILD_INSTALL_ARGS = --destdir=$(DESTDIR) --mandir=$(mandir) $(EXTRA_PERLBUILD_INSTALL_ARGS) @@ -32,4 +37,7 @@ TEST_SCRIPTS = $(WORKSRC)/Build INSTALL_SCRIPTS = $(WORKSRC)/Build +# Test::Harness is too old in out Perl +SKIPTEST ?= 1 + include gar/category.mk Modified: csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/checksums 2015-12-22 12:19:22 UTC (rev 25494) +++ csw/mgar/pkg/cpan/Module-Build-Tiny/trunk/checksums 2015-12-22 12:28:36 UTC (rev 25495) @@ -1 +1 @@ -2b850aae90b68053999f37ca2d5ef165 Module-Build-Tiny-0.025.tar.gz +2332c90c17454107fea3f2614e11a3a9 Module-Build-Tiny-0.039.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 13:58:24 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 12:58:24 +0000 Subject: SF.net SVN: gar:[25496] csw/mgar/pkg/cpan Message-ID: <3pPyQh2qR6z1TX@mail.opencsw.org> Revision: 25496 http://sourceforge.net/p/gar/code/25496 Author: dmichelsen Date: 2015-12-22 12:58:23 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/Data-XLSX-Parser/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Data-XLSX-Parser/ csw/mgar/pkg/cpan/Data-XLSX-Parser/branches/ csw/mgar/pkg/cpan/Data-XLSX-Parser/tags/ csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/ csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/Makefile csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/checksums csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/files/ Index: csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk =================================================================== --- csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk 2015-12-22 12:28:36 UTC (rev 25495) +++ csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk 2015-12-22 12:58:23 UTC (rev 25496) Property changes on: csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,2 ## +work + Added: csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/Makefile 2015-12-22 12:58:23 UTC (rev 25496) @@ -0,0 +1,34 @@ +NAME = Data-XLSX-Parser +VERSION = 0.14 +CATEGORIES = cpan +GARTYPE = v2 +AUTHOR = ACIDLEMON + +DESCRIPTION = Faster XLSX parser +define BLURB +endef + +CATALOG_RELEASE = unstable + +LICENSE = LICENSE + +PACKAGES += CSWpm-data-xlsx-parser +CATALOGNAME_CSWpm-data-xlsx-parser = pm_data_xlsx_parser +SPKG_DESC_CSWpm-data-xlsx-parser = Faster XLSX parser +# There was no information if this is pure Perl or not. Please remove if necessary. +ARCHALL_CSWpm-data-xlsx-parser = 1 +RUNTIME_DEP_PKGS_CSWpm-data-xlsx-parser += CSWpm-archive-zip +RUNTIME_DEP_PKGS_CSWpm-data-xlsx-parser += CSWpm-xml-parser + +CONFIGURE_SCRIPTS = $(WORKSRC)/Build.PL +# This is the same issue as https://rt.cpan.org/Ticket/Display.html?id=86240 +CONFIGURE_ARGS += --mandir=$(mandir) +BUILD_SCRIPTS = $(WORKSRC)/Build +TEST_SCRIPTS = $(WORKSRC)/Build +INSTALL_SCRIPTS = $(WORKSRC)/Build +EXTRA_PERLBUILD_INSTALL_ARGS += --destdir=$(DESTDIR) + +# Test::Harness is too old +SKIPTEST ?= 1 + +include gar/category.mk Added: csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Data-XLSX-Parser/trunk/checksums 2015-12-22 12:58:23 UTC (rev 25496) @@ -0,0 +1 @@ +f48e6d4c3d71d013f3bca4f7191b5ba2 Data-XLSX-Parser-0.14.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Tue Dec 22 14:07:23 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Tue, 22 Dec 2015 13:07:23 +0000 Subject: SF.net SVN: gar:[25497] csw/mgar/pkg/openssl1/trunk/Makefile Message-ID: <3pPyd14K2Mz1X0@mail.opencsw.org> Revision: 25497 http://sourceforge.net/p/gar/code/25497 Author: janholzh Date: 2015-12-22 13:07:23 +0000 (Tue, 22 Dec 2015) Log Message: ----------- openssl1/trunk: remove map files, causes problems Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-22 12:58:23 UTC (rev 25496) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-22 13:07:23 UTC (rev 25497) @@ -78,7 +78,7 @@ DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += README.CSW -DISTFILES += map.openssl.libcrypto map.openssl.libssl map.openssl.engines +#DISTFILES += map.openssl.libcrypto map.openssl.libssl map.openssl.engines DOCFILES = CHANGES CHANGES.SSLeay PROBLEMS README FAQ README.ASN1 INSTALL NEWS README.ENGINE @@ -117,7 +117,8 @@ # Oh yes, let's do symbol versioning so we don't become # crazy during library migration -PATCHFILES += 0007-enables-symbols-versioning.patch +# Disabled as to many new functions. (Like whole aesni stuff missing, if build with mapfiles) +#PATCHFILES += 0007-enables-symbols-versioning.patch # openssl currently only uses issetugid on freebsd and openbsd # althought it is also available on Solaris 10 @@ -248,12 +249,12 @@ pre-configure-modulated: echo " ==> Creating configure script" cd $(WORKSRC) && ln -nf Configure configure - ln -nf $(WORKDIR)/map.openssl.libcrypto $(WORKSRC)/map.openssl.libcrypto - ln -nf $(WORKDIR)/map.openssl.libssl $(WORKSRC)/map.openssl.libssl - for ENGINE in $(ENGINES); do \ - ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/map.openssl.lib$$ENGINE; \ - done - ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/ccgost/map.openssl.libgost +# ln -nf $(WORKDIR)/map.openssl.libcrypto $(WORKSRC)/map.openssl.libcrypto +# ln -nf $(WORKDIR)/map.openssl.libssl $(WORKSRC)/map.openssl.libssl +# for ENGINE in $(ENGINES); do \ +# ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/map.openssl.lib$$ENGINE; \ +# done +# ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/ccgost/map.openssl.libgost @$(MAKECOOKIE) install-conf-misc: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 14:59:31 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 13:59:31 +0000 Subject: SF.net SVN: gar:[25498] csw/mgar/pkg/cpan/IO-stringy/trunk Message-ID: <3pPznB5CZNz4T@mail.opencsw.org> Revision: 25498 http://sourceforge.net/p/gar/code/25498 Author: dmichelsen Date: 2015-12-22 13:59:31 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/IO-stringy/trunk: Update to 2.111 and new package naming Modified Paths: -------------- csw/mgar/pkg/cpan/IO-stringy/trunk/Makefile csw/mgar/pkg/cpan/IO-stringy/trunk/checksums Modified: csw/mgar/pkg/cpan/IO-stringy/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/IO-stringy/trunk/Makefile 2015-12-22 13:07:23 UTC (rev 25497) +++ csw/mgar/pkg/cpan/IO-stringy/trunk/Makefile 2015-12-22 13:59:31 UTC (rev 25498) @@ -1,19 +1,22 @@ NAME = IO-stringy -VERSION = 2.110 +VERSION = 2.111 CATEGORIES = cpan GARTYPE = v2 AUTHOR = DSKOLL -DESCRIPTION = I/O on in-core objects like strings and arrays +DESCRIPTION = I/O on in-core objects like strings/arrays define BLURB - This toolkit primarily provides modules for performing both traditional and - object-oriented i/o) on things other than normal filehandles; in particular, - IO::Scalar, IO::ScalarArray, and IO::Lines. endef -PACKAGES = CSWpmiostringy -CATALOGNAME = pm_iostringy +CATALOG_RELEASE = unstable -ARCHALL = 1 +LICENSE = COPYING +PACKAGES += CSWpm-io-stringy +CATALOGNAME_CSWpm-io-stringy = pm_io_stringy +SPKG_DESC_CSWpm-io-stringy = I/O on in-core objects like strings/arrays +ARCHALL_CSWpm-io-stringy = 1 +OBSOLETED_BY_CSWpm-io-stringy += CSWpmiostringy +CATALOGNAME_CSWpmiostringy = pm_iostringy_stub + include gar/category.mk Modified: csw/mgar/pkg/cpan/IO-stringy/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/IO-stringy/trunk/checksums 2015-12-22 13:07:23 UTC (rev 25497) +++ csw/mgar/pkg/cpan/IO-stringy/trunk/checksums 2015-12-22 13:59:31 UTC (rev 25498) @@ -1 +1 @@ -2e6a976cfa5521e815c1fdf4006982de IO-stringy-2.110.tar.gz +e91acf0a800b190d13585a47de775bdd IO-stringy-2.111.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 14:59:49 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 13:59:49 +0000 Subject: SF.net SVN: gar:[25499] csw/mgar/pkg/cpan/Crypt-RC4/trunk/Makefile Message-ID: <3pPznW0ZZjz6q@mail.opencsw.org> Revision: 25499 http://sourceforge.net/p/gar/code/25499 Author: dmichelsen Date: 2015-12-22 13:59:49 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/Crypt-RC4/trunk: Initial commit Modified Paths: -------------- csw/mgar/pkg/cpan/Crypt-RC4/trunk/Makefile Modified: csw/mgar/pkg/cpan/Crypt-RC4/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Crypt-RC4/trunk/Makefile 2015-12-22 13:59:31 UTC (rev 25498) +++ csw/mgar/pkg/cpan/Crypt-RC4/trunk/Makefile 2015-12-22 13:59:49 UTC (rev 25499) @@ -4,15 +4,17 @@ GARTYPE = v2 AUTHOR = SIFUKURT -DESCRIPTION = Perl implementation of the RC4 encryption algorithm +DESCRIPTION = Implements the RC4 encryption algorithm define BLURB endef -DISTFILES = COPYING +CATALOG_RELEASE = unstable -PACKAGES = CSWpmcryptrc4 -CATALOGNAME = pm_cryptrc4 +LICENSE_TEXT = This module is licensed under the license -ARCHALL = 1 +PACKAGES += CSWpm-crypt-rc4 +CATALOGNAME_CSWpm-crypt-rc4 = pm_crypt_rc4 +SPKG_DESC_CSWpm-crypt-rc4 = Implements the RC4 encryption algorithm +ARCHALL_CSWpm-crypt-rc4 = 1 include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 15:06:38 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 14:06:38 +0000 Subject: SF.net SVN: gar:[25500] csw/mgar/pkg/cpan Message-ID: <3pPzzJ5lDPz9g@mail.opencsw.org> Revision: 25500 http://sourceforge.net/p/gar/code/25500 Author: dmichelsen Date: 2015-12-22 14:06:38 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/Digest-Perl-MD5/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Digest-Perl-MD5/ csw/mgar/pkg/cpan/Digest-Perl-MD5/branches/ csw/mgar/pkg/cpan/Digest-Perl-MD5/tags/ csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/ csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/Makefile csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/checksums csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/files/ Index: csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk =================================================================== --- csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk 2015-12-22 13:59:49 UTC (rev 25499) +++ csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk 2015-12-22 14:06:38 UTC (rev 25500) Property changes on: csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,2 ## +work + Added: csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/Makefile 2015-12-22 14:06:38 UTC (rev 25500) @@ -0,0 +1,20 @@ +NAME = Digest-Perl-MD5 +VERSION = 1.9 +CATEGORIES = cpan +GARTYPE = v2 +AUTHOR = DELTA + +DESCRIPTION = Perl Implementation of Rivest's MD5 algorithm +define BLURB +endef + +CATALOG_RELEASE = unstable + +LICENSE_TEXT = This module is licensed under the unknown license + +PACKAGES += CSWpm-digest-perl-md5 +CATALOGNAME_CSWpm-digest-perl-md5 = pm_digest_perl_md5 +SPKG_DESC_CSWpm-digest-perl-md5 = Perl Implementation of Rivest's MD5 algorithm +ARCHALL_CSWpm-digest-perl-md5 = 1 + +include gar/category.mk Added: csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Digest-Perl-MD5/trunk/checksums 2015-12-22 14:06:38 UTC (rev 25500) @@ -0,0 +1 @@ +41f1160e11ce0d99021fc8d6c725fa3d Digest-Perl-MD5-1.9.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 15:37:29 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 14:37:29 +0000 Subject: SF.net SVN: gar:[25501] csw/mgar/pkg/cpan Message-ID: <3pQ0d03D5QzDF@mail.opencsw.org> Revision: 25501 http://sourceforge.net/p/gar/code/25501 Author: dmichelsen Date: 2015-12-22 14:37:29 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/Spreadsheet-ParseExcel/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/ csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/branches/ csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/tags/ csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/ csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/Makefile csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/checksums csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/files/ Index: csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk =================================================================== --- csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk 2015-12-22 14:06:38 UTC (rev 25500) +++ csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk 2015-12-22 14:37:29 UTC (rev 25501) Property changes on: csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,2 ## +work + Added: csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/Makefile 2015-12-22 14:37:29 UTC (rev 25501) @@ -0,0 +1,24 @@ +NAME = Spreadsheet-ParseExcel +VERSION = 0.65 +CATEGORIES = cpan +GARTYPE = v2 +AUTHOR = DOUGW + +DESCRIPTION = Read information from an Excel file +define BLURB +endef + +CATALOG_RELEASE = unstable + +LICENSE_TEXT = This module is licensed under the perl license + +PACKAGES += CSWpm-spreadsheet-parseexcel +CATALOGNAME_CSWpm-spreadsheet-parseexcel = pm_spreadsheet_parseexcel +SPKG_DESC_CSWpm-spreadsheet-parseexcel = Read information from an Excel file +ARCHALL_CSWpm-spreadsheet-parseexcel = 1 +RUNTIME_DEP_PKGS_CSWpm-spreadsheet-parseexcel += CSWpm-crypt-rc4 +RUNTIME_DEP_PKGS_CSWpm-spreadsheet-parseexcel += CSWpm-ole-storage-lite +RUNTIME_DEP_PKGS_CSWpm-spreadsheet-parseexcel += CSWpm-io-stringy +RUNTIME_DEP_PKGS_CSWpm-spreadsheet-parseexcel += CSWpm-digest-perl-md5 + +include gar/category.mk Added: csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Spreadsheet-ParseExcel/trunk/checksums 2015-12-22 14:37:29 UTC (rev 25501) @@ -0,0 +1 @@ +4b8857e3a391d86501c1b742b459ac9e Spreadsheet-ParseExcel-0.65.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 22 15:48:59 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 22 Dec 2015 14:48:59 +0000 Subject: SF.net SVN: gar:[25502] csw/mgar/pkg/cpan Message-ID: <3pQ0tK0VVnzGd@mail.opencsw.org> Revision: 25502 http://sourceforge.net/p/gar/code/25502 Author: dmichelsen Date: 2015-12-22 14:48:59 +0000 (Tue, 22 Dec 2015) Log Message: ----------- cpan/Spreadsheet-XLSX/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Spreadsheet-XLSX/ csw/mgar/pkg/cpan/Spreadsheet-XLSX/branches/ csw/mgar/pkg/cpan/Spreadsheet-XLSX/tags/ csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/ csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/Makefile csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/checksums csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/files/ csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/files/0001-Only-one-author-allowed.patch Index: csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk =================================================================== --- csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk 2015-12-22 14:37:29 UTC (rev 25501) +++ csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk 2015-12-22 14:48:59 UTC (rev 25502) Property changes on: csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,2 ## +work + Added: csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/Makefile 2015-12-22 14:48:59 UTC (rev 25502) @@ -0,0 +1,26 @@ +NAME = Spreadsheet-XLSX +VERSION = 0.15 +CATEGORIES = cpan +GARTYPE = v2 +AUTHOR = MIKEB + +DESCRIPTION = Perl extension for reading MS Excel 2007 files; +define BLURB +endef + +PATCHFILES += 0001-Only-one-author-allowed.patch + +CATALOG_RELEASE = unstable + +LICENSE_TEXT = This module is licensed under the perl license + +PACKAGES += CSWpm-spreadsheet-xlsx +CATALOGNAME_CSWpm-spreadsheet-xlsx = pm_spreadsheet_xlsx +SPKG_DESC_CSWpm-spreadsheet-xlsx = Perl extension for reading MS Excel 2007 files; +# There was no information if this is pure Perl or not. Please remove if necessary. +ARCHALL_CSWpm-spreadsheet-xlsx = 1 +RUNTIME_DEP_PKGS_CSWpm-spreadsheet-xlsx += CSWpm-archive-zip +RUNTIME_DEP_PKGS_CSWpm-spreadsheet-xlsx += CSWpm-test-nowarnings +RUNTIME_DEP_PKGS_CSWpm-spreadsheet-xlsx += CSWpm-spreadsheet-parseexcel + +include gar/category.mk Added: csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/checksums 2015-12-22 14:48:59 UTC (rev 25502) @@ -0,0 +1 @@ +e62c42820504bf671e5baaff17ac322c Spreadsheet-XLSX-0.15.tar.gz Added: csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/files/0001-Only-one-author-allowed.patch =================================================================== --- csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/files/0001-Only-one-author-allowed.patch (rev 0) +++ csw/mgar/pkg/cpan/Spreadsheet-XLSX/trunk/files/0001-Only-one-author-allowed.patch 2015-12-22 14:48:59 UTC (rev 25502) @@ -0,0 +1,23 @@ +From 2a705a42c7c8c03429c632eb6f7d0f108c2d9c0c Mon Sep 17 00:00:00 2001 +From: Dagobert Michelsen +Date: Tue, 22 Dec 2015 15:47:46 +0100 +Subject: [PATCH] Only one author allowed + +--- + Makefile.PL | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.PL b/Makefile.PL +index e450386..472a880 100755 +--- a/Makefile.PL ++++ b/Makefile.PL +@@ -13,5 +13,5 @@ WriteMakefile( + }, + ($] >= 5.005 ? ## Add these new keywords supported since 5.005 + (ABSTRACT_FROM => 'lib/Spreadsheet/XLSX.pm', # retrieve abstract from module +- AUTHOR => ['Dmitry Ovsyanko ','Mike Blackwell 'Dmitry Ovsyanko ') : ()), + ); +-- +2.4.0 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Tue Dec 22 17:06:55 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Tue, 22 Dec 2015 16:06:55 +0000 Subject: SF.net SVN: gar:[25503] csw/mgar/pkg/openssl1/trunk Message-ID: <3pQ2fc5vLDzL9@mail.opencsw.org> Revision: 25503 http://sourceforge.net/p/gar/code/25503 Author: janholzh Date: 2015-12-22 16:06:55 +0000 (Tue, 22 Dec 2015) Log Message: ----------- openssl1/trunk: update targets Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/files/optimized_configure_targets.patch Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-22 14:48:59 UTC (rev 25502) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-22 16:06:55 UTC (rev 25503) @@ -175,7 +175,9 @@ sparcv8_SUN_CONFIGURE_TARGET = solaris-sparcv8-cc-sunw sparcv8plus_SUN_CONFIGURE_TARGET = solaris-sparcv9-cc-sunw sparcv8plus+vis_SUN_CONFIGURE_TARGET = solaris-sparcv9+vis-cc-sunw -sparcv9_SUN_CONFIGURE_TARGET = solaris64-sparcv9-cc-sunw +sparcv9_SUN_CONFIGURE_TARGET_5.11 = solaris64-sparcv9-cc-sunw +sparcv9_SUN_CONFIGURE_TARGET_5.10 = solaris64-sparcv9-cc-sunw10 +sparcv9_SUN_CONFIGURE_TARGET = $(sparcv9_SUN_CONFIGURE_TARGET_$(GAROSREL)) sparcv8_GNU_CONFIGURE_TARGET = solaris-sparcv8-gcc sparcv8plus_GNU_CONFIGURE_TARGET = solaris-sparcv9-gcc Modified: csw/mgar/pkg/openssl1/trunk/files/optimized_configure_targets.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/optimized_configure_targets.patch 2015-12-22 14:48:59 UTC (rev 25502) +++ csw/mgar/pkg/openssl1/trunk/files/optimized_configure_targets.patch 2015-12-22 16:06:55 UTC (rev 25503) @@ -1,10 +1,17 @@ -# -# This was developed in house to support Solaris-specific options. -# Not suitable for upstream. -# ---- openssl-1.0.0d/Configure Thu Feb 10 20:02:41 2011 -+++ /tmp/Configure Thu Feb 10 20:01:51 2011 -@@ -153,6 +153,7 @@ +From 322bf7280b0b5f6305a90a6441436f0b88e1aab3 Mon Sep 17 00:00:00 2001 +From: Jan Holzhueter +Date: Tue, 22 Dec 2015 16:28:49 +0100 +Subject: [PATCH] optimised + +--- + Configure | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/Configure b/Configure +index 418d5c7..ebd4d60 100755 +--- a/Configure ++++ b/Configure +@@ -153,6 +153,7 @@ my $x86_elf_asm="$x86_asm:elf"; my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o:ecp_nistz256.o ecp_nistz256-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o aesni-gcm-x86_64.o:"; my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void"; my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o::des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o::::::camellia.o cmll_misc.o cmll_cbc.o cmllt4-sparcv9.o:ghash-sparcv9.o::void"; @@ -12,7 +19,7 @@ my $sparcv8_asm=":sparcv8.o::des_enc-sparc.o fcrypt_b.o:::::::::::::void"; my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o::::::sha1-alpha.o:::::::ghash-alpha.o::void"; my $mips64_asm=":bn-mips.o mips-mont.o:::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o sha512-mips.o::::::::"; -@@ -277,6 +278,21 @@ +@@ -277,6 +278,22 @@ my %table=( #"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::", "sunos-gcc","gcc:-O3 -mcpu=v8 -Dssize_t=int::(unknown):SUNOS::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:${no_asm}::", @@ -24,6 +31,7 @@ +"solaris-sparcv9-cc-sunw","cc:-xtarget=ultra -m32 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +# +"solaris64-sparcv9-cc-sunw","cc:-xtarget=ultra -m64 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -xspace -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/bin/ar rs::/64", ++"solaris64-sparcv9-cc-sunw10","cc:-xtarget=ultra -m64 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -xspace -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64", +"solaris-fips-sparcv9-cc-sunw","cc:-xtarget=ultra -m32 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc -lsoftcrypto -R /lib/openssl/fips-140:BN_LLONG RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${fips_sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m32 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris64-fips-sparcv9-cc-sunw","cc:-xtarget=ultra -m64 -Qoption cg -xregs=no%appl -xO5 -xstrconst -xdepend -xspace -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -lc:BN_LLONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${fips_sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-m64 -G -dy -z text -zdefs -Bdirect -zignore -M/usr/lib/ld/map.pagealign:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/bin/ar rs::/64", +# Option -xF=%all instructs the compiler to place functions and data @@ -34,3 +42,6 @@ #### IRIX 5.x configs # -mips2 flag is added by ./config when appropriate. "irix-gcc","gcc:-O3 -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +-- +2.4.0 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Mon Dec 28 16:28:17 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Mon, 28 Dec 2015 15:28:17 +0000 Subject: SF.net SVN: gar:[25504] csw/mgar/pkg/openssl1/trunk Message-ID: <3pTjT33XCmztv@mail.opencsw.org> Revision: 25504 http://sourceforge.net/p/gar/code/25504 Author: janholzh Date: 2015-12-28 15:28:17 +0000 (Mon, 28 Dec 2015) Log Message: ----------- openssl1/trunk: get map files back Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-22 16:06:55 UTC (rev 25503) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-28 15:28:17 UTC (rev 25504) @@ -78,7 +78,7 @@ DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += README.CSW -#DISTFILES += map.openssl.libcrypto map.openssl.libssl map.openssl.engines +DISTFILES += map.openssl.libcrypto map.openssl.libssl map.openssl.engines DOCFILES = CHANGES CHANGES.SSLeay PROBLEMS README FAQ README.ASN1 INSTALL NEWS README.ENGINE @@ -118,7 +118,7 @@ # Oh yes, let's do symbol versioning so we don't become # crazy during library migration # Disabled as to many new functions. (Like whole aesni stuff missing, if build with mapfiles) -#PATCHFILES += 0007-enables-symbols-versioning.patch +PATCHFILES += 0007-enables-symbols-versioning.patch # openssl currently only uses issetugid on freebsd and openbsd # althought it is also available on Solaris 10 @@ -251,12 +251,12 @@ pre-configure-modulated: echo " ==> Creating configure script" cd $(WORKSRC) && ln -nf Configure configure -# ln -nf $(WORKDIR)/map.openssl.libcrypto $(WORKSRC)/map.openssl.libcrypto -# ln -nf $(WORKDIR)/map.openssl.libssl $(WORKSRC)/map.openssl.libssl -# for ENGINE in $(ENGINES); do \ -# ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/map.openssl.lib$$ENGINE; \ -# done -# ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/ccgost/map.openssl.libgost + ln -nf $(WORKDIR)/map.openssl.libcrypto $(WORKSRC)/map.openssl.libcrypto + ln -nf $(WORKDIR)/map.openssl.libssl $(WORKSRC)/map.openssl.libssl + for ENGINE in $(ENGINES); do \ + ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/map.openssl.lib$$ENGINE; \ + done + ln -nf $(WORKDIR)/map.openssl.engines $(WORKSRC)/engines/ccgost/map.openssl.libgost @$(MAKECOOKIE) install-conf-misc: Modified: csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto 2015-12-22 16:06:55 UTC (rev 25503) +++ csw/mgar/pkg/openssl1/trunk/files/map.openssl.libcrypto 2015-12-28 15:28:17 UTC (rev 25504) @@ -3740,36 +3740,94 @@ OPENSSL_1.0.2 { global: - X509_chain_up_ref = DIRECT; - X509_chain_check_suiteb = DIRECT; - X509_get_signature_nid = DIRECT; - EVP_aes_256_cbc_hmac_sha256 = DIRECT; - EVP_aes_128_cbc_hmac_sha256 = DIRECT; - EC_curve_nist2nid = DIRECT; - X509_check_email = DIRECT; - EVP_aes_128_wrap = DIRECT; - X509_VERIFY_PARAM_set1_ip_asc = DIRECT; - X509_check_ip_asc = DIRECT; - EVP_des_ede3_wrap = DIRECT; - X509_STORE_set_lookup_crls_cb = DIRECT; - X509_http_nbio = DIRECT; - EC_curve_nid2nist = DIRECT; - X509_VERIFY_PARAM_set1_email = DIRECT; - X509_CRL_http_nbio = DIRECT; + ASN1_TIME_diff = DIRECT; + BIO_hex_string = DIRECT; + BUF_strnlen = DIRECT; + CMS_RecipientEncryptedKey_cert_cmp = DIRECT; + CMS_RecipientEncryptedKey_get0_id = DIRECT; + CMS_RecipientInfo_encrypt = DIRECT; CMS_RecipientInfo_get0_pkey_ctx = DIRECT; + CMS_RecipientInfo_kari_decrypt = DIRECT; + CMS_RecipientInfo_kari_get0_alg = DIRECT; CMS_RecipientInfo_kari_get0_ctx = DIRECT; + CMS_RecipientInfo_kari_get0_orig_id = DIRECT; + CMS_RecipientInfo_kari_get0_reks = DIRECT; + CMS_RecipientInfo_kari_orig_id_cmp = DIRECT; + CMS_RecipientInfo_kari_set0_pkey = DIRECT; + CMS_SharedInfo_encode = DIRECT; + CMS_SignerInfo_get0_md_ctx = DIRECT; + CMS_SignerInfo_get0_pkey_ctx = DIRECT; + CMS_SignerInfo_get0_signature = DIRECT; + CRYPTO_128_unwrap = DIRECT; + CRYPTO_128_wrap = DIRECT; + DH_KDF_X9_42 = DIRECT; + DH_compute_key_padded = DIRECT; + DH_get_1024_160 = DIRECT; + DH_get_2048_224 = DIRECT; + DH_get_2048_256 = DIRECT; + ECDH_KDF_X9_62 = DIRECT; + ECDSA_METHOD_free = DIRECT; + ECDSA_METHOD_get_app_data = DIRECT; + ECDSA_METHOD_new = DIRECT; + ECDSA_METHOD_set_app_data = DIRECT; + ECDSA_METHOD_set_flags = DIRECT; + ECDSA_METHOD_set_name = DIRECT; + ECDSA_METHOD_set_sign = DIRECT; + ECDSA_METHOD_set_sign_setup = DIRECT; + ECDSA_METHOD_set_verify = DIRECT; + EC_GROUP_get_mont_data = DIRECT; + EC_curve_nid2nist = DIRECT; + EC_curve_nist2nid = DIRECT; + EVP_aes_128_cbc_hmac_sha256 = DIRECT; + EVP_aes_128_wrap = DIRECT; EVP_aes_192_wrap = DIRECT; - ASN1_TIME_diff = DIRECT; - X509_check_host = DIRECT; + EVP_aes_256_cbc_hmac_sha256 = DIRECT; EVP_aes_256_wrap = DIRECT; + EVP_des_ede3_wrap = DIRECT; + OCSP_REQ_CTX_get0_mem_bio = DIRECT; OCSP_REQ_CTX_http = DIRECT; - CMS_SignerInfo_get0_pkey_ctx = DIRECT; + OCSP_REQ_CTX_i2d = DIRECT; + OCSP_REQ_CTX_nbio = DIRECT; + OCSP_REQ_CTX_nbio_d2i = DIRECT; + OCSP_REQ_CTX_new = DIRECT; + OCSP_set_max_response_length = DIRECT; + OPENSSL_1.0.2 = DIRECT; + PEM_write_DHxparams = DIRECT; + PEM_write_bio_DHxparams = DIRECT; + RSA_OAEP_PARAMS_free = DIRECT; + RSA_OAEP_PARAMS_it = DIRECT; + RSA_OAEP_PARAMS_new = DIRECT; + RSA_padding_add_PKCS1_OAEP_mgf1 = DIRECT; + RSA_padding_check_PKCS1_OAEP_mgf1 = DIRECT; + X509V3_EXT_free = DIRECT; + X509_CRL_check_suiteb = DIRECT; X509_CRL_diff = DIRECT; - OCSP_REQ_CTX_new = DIRECT; + X509_CRL_http_nbio = DIRECT; + X509_REVOKED_dup = DIRECT; + X509_STORE_CTX_get0_store = DIRECT; + X509_STORE_set_lookup_crls_cb = DIRECT; + X509_VERIFY_PARAM_add1_host = DIRECT; + X509_VERIFY_PARAM_get0 = DIRECT; + X509_VERIFY_PARAM_get0_name = DIRECT; + X509_VERIFY_PARAM_get0_peername = DIRECT; + X509_VERIFY_PARAM_get_count = DIRECT; + X509_VERIFY_PARAM_set1_email = DIRECT; X509_VERIFY_PARAM_set1_host = DIRECT; - PEM_write_bio_DHxparams = DIRECT; - DH_get_1024_160 = DIRECT; - DH_get_2048_256 = DIRECT; - DH_get_2048_224 = DIRECT; + X509_VERIFY_PARAM_set1_ip = DIRECT; + X509_VERIFY_PARAM_set1_ip_asc = DIRECT; + X509_VERIFY_PARAM_set_hostflags = DIRECT; + X509_chain_check_suiteb = DIRECT; + X509_chain_up_ref = DIRECT; + X509_check_email = DIRECT; + X509_check_host = DIRECT; + X509_check_ip = DIRECT; + X509_check_ip_asc = DIRECT; + X509_get0_signature = DIRECT; + X509_get_signature_nid = DIRECT; + X509_http_nbio = DIRECT; + d2i_DHxparams = DIRECT; + i2d_DHxparams = DIRECT; + i2d_re_X509_tbs = DIRECT; + sk_deep_copy = DIRECT; } OPENSSL_1.0.1d; Modified: csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl 2015-12-22 16:06:55 UTC (rev 25503) +++ csw/mgar/pkg/openssl1/trunk/files/map.openssl.libssl 2015-12-28 15:28:17 UTC (rev 25504) @@ -294,29 +294,46 @@ OPENSSL_1.0.2 { global: - SSL_CONF_CTX_set_ssl_ctx = DIRECT; + DTLS_client_method = DIRECT; + DTLS_method = DIRECT; + DTLS_server_method = DIRECT; + DTLSv1_2_client_method = DIRECT; + DTLSv1_2_method = DIRECT; + DTLSv1_2_server_method = DIRECT; + OPENSSL_1.0.2 = DIRECT; + SSL_CIPHER_find = DIRECT; + SSL_COMP_free_compression_methods = DIRECT; + SSL_COMP_set0_compression_methods = DIRECT; + SSL_CONF_CTX_clear_flags = DIRECT; + SSL_CONF_CTX_finish = DIRECT; SSL_CONF_CTX_free = DIRECT; - SSL_get_shared_sigalgs = DIRECT; - SSL_check_chain = DIRECT; + SSL_CONF_CTX_new = DIRECT; + SSL_CONF_CTX_set1_prefix = DIRECT; SSL_CONF_CTX_set_flags = DIRECT; + SSL_CONF_CTX_set_ssl = DIRECT; + SSL_CONF_CTX_set_ssl_ctx = DIRECT; + SSL_CONF_cmd = DIRECT; + SSL_CONF_cmd_argv = DIRECT; + SSL_CONF_cmd_value_type = DIRECT; + SSL_CTX_add_client_custom_ext = DIRECT; + SSL_CTX_add_server_custom_ext = DIRECT; + SSL_CTX_get0_certificate = DIRECT; + SSL_CTX_get0_param = DIRECT; + SSL_CTX_get0_privatekey = DIRECT; + SSL_CTX_get_ssl_method = DIRECT; SSL_CTX_set_alpn_protos = DIRECT; - SSL_CONF_cmd = DIRECT; - SSL_CIPHER_find = DIRECT; + SSL_CTX_set_alpn_select_cb = DIRECT; + SSL_CTX_set_cert_cb = DIRECT; + SSL_CTX_use_serverinfo = DIRECT; + SSL_CTX_use_serverinfo_file = DIRECT; + SSL_certs_clear = DIRECT; + SSL_check_chain = DIRECT; + SSL_extension_supported = DIRECT; SSL_get0_alpn_selected = DIRECT; - SSL_certs_clear = DIRECT; - SSL_CONF_CTX_new = DIRECT; + SSL_get0_param = DIRECT; + SSL_get_shared_sigalgs = DIRECT; SSL_get_sigalgs = DIRECT; - SSL_CONF_cmd_argv = DIRECT; - SSL_CTX_use_serverinfo_file = DIRECT; SSL_is_server = DIRECT; - SSL_CTX_add_client_custom_ext = DIRECT; - SSL_CTX_set_cert_cb = DIRECT; - SSL_CTX_set_alpn_select_cb = DIRECT; - SSL_CONF_CTX_finish = DIRECT; - DTLSv1_2_client_method = DIRECT; - DTLSv1_2_server_method = DIRECT; - DTLS_client_method = DIRECT; - DTLS_server_method = DIRECT; - DTLSv1_2_method = DIRECT; - SSL_CTX_add_server_custom_ext = DIRECT; + SSL_set_alpn_protos = DIRECT; + SSL_set_cert_cb = DIRECT; } OPENSSL_1.0.1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Mon Dec 28 17:13:39 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Mon, 28 Dec 2015 16:13:39 +0000 Subject: SF.net SVN: gar:[25505] csw/mgar/pkg/openssl1/trunk/Makefile Message-ID: <3pTkTB0y13zxb@mail.opencsw.org> Revision: 25505 http://sourceforge.net/p/gar/code/25505 Author: janholzh Date: 2015-12-28 16:13:38 +0000 (Mon, 28 Dec 2015) Log Message: ----------- openssl1/trunk: disable strip Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-28 15:28:17 UTC (rev 25504) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-12-28 16:13:38 UTC (rev 25505) @@ -226,7 +226,8 @@ EXTRA_INSTALL_ARGS += MANDIR=$(mandir) # library files are not automatically stripped -STRIP_DIRS = $(DESTDIR)/$(libdir) $(DESTDIR)/$(libdir)/openssl-$(SONAME)/engines/ +# Enabling it removes e.g aesni feature on Solaris10x work on S11 though: Need to investigate +#STRIP_DIRS = $(DESTDIR)/$(libdir) $(DESTDIR)/$(libdir)/openssl-$(SONAME)/engines/ TEST_TARGET = tests This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 28 19:22:15 2015 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 28 Dec 2015 18:22:15 +0000 Subject: SF.net SVN: gar:[25506] csw/mgar/pkg/bash/trunk Message-ID: <3pTnKY6sydz12S@mail.opencsw.org> Revision: 25506 http://sourceforge.net/p/gar/code/25506 Author: chninkel Date: 2015-12-28 18:22:15 +0000 (Mon, 28 Dec 2015) Log Message: ----------- bash/trunk: update to patch level 42 Modified Paths: -------------- csw/mgar/pkg/bash/trunk/Makefile csw/mgar/pkg/bash/trunk/checksums Modified: csw/mgar/pkg/bash/trunk/Makefile =================================================================== --- csw/mgar/pkg/bash/trunk/Makefile 2015-12-28 16:13:38 UTC (rev 25505) +++ csw/mgar/pkg/bash/trunk/Makefile 2015-12-28 18:22:15 UTC (rev 25506) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = bash -VERSION = 4.3.33 +VERSION = 4.3.42 GARTYPE = v2 DESCRIPTION = A sh-compatible command language interpreter Modified: csw/mgar/pkg/bash/trunk/checksums =================================================================== --- csw/mgar/pkg/bash/trunk/checksums 2015-12-28 16:13:38 UTC (rev 25505) +++ csw/mgar/pkg/bash/trunk/checksums 2015-12-28 18:22:15 UTC (rev 25506) @@ -32,3 +32,12 @@ 236df1ac1130a033ed0dbe2d2115f28f bash43-031 2360f7e79cfb28526f80021025ea5909 bash43-032 b551c4ee7b8713759e4143499d0bbd48 bash43-033 +c9a56fbe0348e05a886dff97f2872b74 bash43-034 +e564e8ab44ed1ca3a4e315a9f6cabdc9 bash43-035 +b00ff66c41a7c0f06e191200981980b0 bash43-036 +be2a7b05f6ae560313f3c9d5f7127bda bash43-037 +61e0522830b24fbe8c0d1b010f132470 bash43-038 +a4775487abe958536751c8ce53cdf6f9 bash43-039 +80d3587c58854e226055ef099ffeb535 bash43-040 +20bf63eef7cb441c0b1cc49ef3191d03 bash43-041 +70790646ae61e207c995e44931390e50 bash43-042 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 28 19:32:53 2015 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 28 Dec 2015 18:32:53 +0000 Subject: SF.net SVN: gar:[25507] csw/mgar/pkg/jq/trunk Message-ID: <3pTnYq030rz151@mail.opencsw.org> Revision: 25507 http://sourceforge.net/p/gar/code/25507 Author: chninkel Date: 2015-12-28 18:32:52 +0000 (Mon, 28 Dec 2015) Log Message: ----------- jq/trunk: update to 1.5 Modified Paths: -------------- csw/mgar/pkg/jq/trunk/Makefile csw/mgar/pkg/jq/trunk/checksums Modified: csw/mgar/pkg/jq/trunk/Makefile =================================================================== --- csw/mgar/pkg/jq/trunk/Makefile 2015-12-28 18:22:15 UTC (rev 25506) +++ csw/mgar/pkg/jq/trunk/Makefile 2015-12-28 18:32:52 UTC (rev 25507) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = jq -VERSION = 1.4 +VERSION = 1.5 GARTYPE = v2 DESCRIPTION = A lightweight and flexible command-line JSON processor. @@ -23,7 +23,8 @@ friends let you play with text. endef -MASTER_SITES = http://stedolan.github.io/jq/download/source/ + +MASTER_SITES = https://github.com/stedolan/jq/releases/download/jq-$(VERSION)/ DISTFILES += $(DISTNAME).tar.gz VENDOR_URL = http://stedolan.github.io/jq/ Modified: csw/mgar/pkg/jq/trunk/checksums =================================================================== --- csw/mgar/pkg/jq/trunk/checksums 2015-12-28 18:22:15 UTC (rev 25506) +++ csw/mgar/pkg/jq/trunk/checksums 2015-12-28 18:32:52 UTC (rev 25507) @@ -1 +1 @@ -e3c75a4f805bb5342c9f4b3603fb248f jq-1.4.tar.gz +0933532b086bd8b6a41c1b162b1731f9 jq-1.5.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 28 19:41:50 2015 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 28 Dec 2015 18:41:50 +0000 Subject: SF.net SVN: gar:[25508] csw/mgar/pkg/lftp/trunk Message-ID: <3pTnm84qV1z17N@mail.opencsw.org> Revision: 25508 http://sourceforge.net/p/gar/code/25508 Author: chninkel Date: 2015-12-28 18:41:50 +0000 (Mon, 28 Dec 2015) Log Message: ----------- lftp/trunk: update to 4.6.5 Modified Paths: -------------- csw/mgar/pkg/lftp/trunk/Makefile csw/mgar/pkg/lftp/trunk/checksums Modified: csw/mgar/pkg/lftp/trunk/Makefile =================================================================== --- csw/mgar/pkg/lftp/trunk/Makefile 2015-12-28 18:32:52 UTC (rev 25507) +++ csw/mgar/pkg/lftp/trunk/Makefile 2015-12-28 18:41:50 UTC (rev 25508) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = lftp -VERSION = 4.6.1 +VERSION = 4.6.5 GARTYPE = v2 DESCRIPTION = A sophisticated command-line ftp/http client Modified: csw/mgar/pkg/lftp/trunk/checksums =================================================================== --- csw/mgar/pkg/lftp/trunk/checksums 2015-12-28 18:32:52 UTC (rev 25507) +++ csw/mgar/pkg/lftp/trunk/checksums 2015-12-28 18:41:50 UTC (rev 25508) @@ -1 +1 @@ -4995792c14dc7952474c4dbcdd1e0b13 lftp-4.6.1.tar.gz +a19aba54e4a49e51739878ffe5600bde lftp-4.6.5.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 28 19:47:14 2015 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 28 Dec 2015 18:47:14 +0000 Subject: SF.net SVN: gar:[25509] csw/mgar/pkg/vsftpd/trunk Message-ID: <3pTntM3nQfz1B8@mail.opencsw.org> Revision: 25509 http://sourceforge.net/p/gar/code/25509 Author: chninkel Date: 2015-12-28 18:47:13 +0000 (Mon, 28 Dec 2015) Log Message: ----------- vsftpd/trunk: update to 3.0.3 Modified Paths: -------------- csw/mgar/pkg/vsftpd/trunk/Makefile csw/mgar/pkg/vsftpd/trunk/checksums Modified: csw/mgar/pkg/vsftpd/trunk/Makefile =================================================================== --- csw/mgar/pkg/vsftpd/trunk/Makefile 2015-12-28 18:41:50 UTC (rev 25508) +++ csw/mgar/pkg/vsftpd/trunk/Makefile 2015-12-28 18:47:13 UTC (rev 25509) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = vsftpd -VERSION = 3.0.2 +VERSION = 3.0.3 GARTYPE = v2 DESCRIPTION = A very secure and fast FTP server. Modified: csw/mgar/pkg/vsftpd/trunk/checksums =================================================================== --- csw/mgar/pkg/vsftpd/trunk/checksums 2015-12-28 18:41:50 UTC (rev 25508) +++ csw/mgar/pkg/vsftpd/trunk/checksums 2015-12-28 18:47:13 UTC (rev 25509) @@ -1 +1 @@ -8b00c749719089401315bd3c44dddbb2 vsftpd-3.0.2.tar.gz +da119d084bd3f98664636ea05b5bb398 vsftpd-3.0.3.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 28 19:56:03 2015 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 28 Dec 2015 18:56:03 +0000 Subject: SF.net SVN: gar:[25510] csw/mgar/pkg/lftp/trunk/Makefile Message-ID: <3pTp4Y31jbz1DV@mail.opencsw.org> Revision: 25510 http://sourceforge.net/p/gar/code/25510 Author: chninkel Date: 2015-12-28 18:56:03 +0000 (Mon, 28 Dec 2015) Log Message: ----------- lftp/trunk: update build dependencies to build with gcc 5 Modified Paths: -------------- csw/mgar/pkg/lftp/trunk/Makefile Modified: csw/mgar/pkg/lftp/trunk/Makefile =================================================================== --- csw/mgar/pkg/lftp/trunk/Makefile 2015-12-28 18:47:13 UTC (rev 25509) +++ csw/mgar/pkg/lftp/trunk/Makefile 2015-12-28 18:56:03 UTC (rev 25510) @@ -23,7 +23,7 @@ PACKAGES = CSWlftp -BUILD_DEP_PKGS = CSWgcc4g++ +BUILD_DEP_PKGS = CSWgcc5g++ RUNTIME_DEP_PKGS = CSWlibexpat1 RUNTIME_DEP_PKGS += CSWlibiconv2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Mon Dec 28 20:00:19 2015 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Mon, 28 Dec 2015 19:00:19 +0000 Subject: SF.net SVN: gar:[25511] csw/mgar/pkg/jq/trunk Message-ID: <3pTp9V6lkRz1Gw@mail.opencsw.org> Revision: 25511 http://sourceforge.net/p/gar/code/25511 Author: chninkel Date: 2015-12-28 19:00:18 +0000 (Mon, 28 Dec 2015) Log Message: ----------- jq/trunk: fix build issue with _XOPEN_SOURCE Modified Paths: -------------- csw/mgar/pkg/jq/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/jq/trunk/files/unset_xopen_source_for_solaris.patch Modified: csw/mgar/pkg/jq/trunk/Makefile =================================================================== --- csw/mgar/pkg/jq/trunk/Makefile 2015-12-28 18:56:03 UTC (rev 25510) +++ csw/mgar/pkg/jq/trunk/Makefile 2015-12-28 19:00:18 UTC (rev 25511) @@ -42,6 +42,11 @@ PKGFILES_CSWlibjq-dev += $(PKGFILES_DEVEL) RUNTIME_DEP_PKGS_CSWlibjq-dev += CSWlibjq1 +# jq define _XOPEN_SOURCE but it causes problem when compiled with GCC +# so we undefine it for now +# see https://www.illumos.org/issues/3801 for detail on this issue +PATCHFILES += unset_xopen_source_for_solaris.patch + GARCOMPILER = GNU BUILD64 = 1 Added: csw/mgar/pkg/jq/trunk/files/unset_xopen_source_for_solaris.patch =================================================================== --- csw/mgar/pkg/jq/trunk/files/unset_xopen_source_for_solaris.patch (rev 0) +++ csw/mgar/pkg/jq/trunk/files/unset_xopen_source_for_solaris.patch 2015-12-28 19:00:18 UTC (rev 25511) @@ -0,0 +1,10 @@ +diff -urN jq-1.5/builtin.c jq-1.5.new/builtin.c +--- jq-1.5/builtin.c 2015-08-16 06:38:10.000000000 +0200 ++++ jq-1.5.new/builtin.c 2015-12-28 19:48:18.873160894 +0100 +@@ -1,6 +1,5 @@ + #define _BSD_SOURCE + #define _GNU_SOURCE +-#define _XOPEN_SOURCE + #include + #include + #include This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Dec 29 16:11:19 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 29 Dec 2015 15:11:19 +0000 Subject: SF.net SVN: gar:[25512] csw/mgar/pkg/lsof/trunk Message-ID: <3pVK2p1pVkz1Wg@mail.opencsw.org> Revision: 25512 http://sourceforge.net/p/gar/code/25512 Author: dmichelsen Date: 2015-12-29 15:11:18 +0000 (Tue, 29 Dec 2015) Log Message: ----------- lsof/trunk: Update to 4.89 Modified Paths: -------------- csw/mgar/pkg/lsof/trunk/Makefile csw/mgar/pkg/lsof/trunk/checksums Modified: csw/mgar/pkg/lsof/trunk/Makefile =================================================================== --- csw/mgar/pkg/lsof/trunk/Makefile 2015-12-28 19:00:18 UTC (rev 25511) +++ csw/mgar/pkg/lsof/trunk/Makefile 2015-12-29 15:11:18 UTC (rev 25512) @@ -1,7 +1,7 @@ # TBD: NAME = lsof -VERSION = 4.88 +VERSION = 4.89 GARTYPE = v2 DESCRIPTION = List open files Modified: csw/mgar/pkg/lsof/trunk/checksums =================================================================== --- csw/mgar/pkg/lsof/trunk/checksums 2015-12-28 19:00:18 UTC (rev 25511) +++ csw/mgar/pkg/lsof/trunk/checksums 2015-12-29 15:11:18 UTC (rev 25512) @@ -1 +1 @@ -1b29c10db4aa88afcaeeaabeef6790db lsof_4.88.tar.bz2 +1b9cd34f3fb86856a125abbf2be3a386 lsof_4.89.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.