Commit 674d5858df6cd3dc5cafa25875861f4742d64608, merged to master. Closing ticket.
Cheers, Richard Vid Sat, 19 Mar 2016 kl. 13.38.57, skrev rainer.j...@kippdata.de: > Hi Richard, > > Am 19.03.2016 um 12:49 schrieb Richard Levitte via RT: > > So I'm wondering, what happens if you apply the attached patch? > > Works like a charm, tested on Solaris 10 Sparc doing a 32bit build and a > 64bit build. The intermediate ".s" (lower case) file no longer gets > generated and instead the object file gets directly compiled from the .S > (upper case) file. > > Builds succeed, tests pass. > > As always: thanks a bunch! > > Regards, > > Rainer > > > Vid Sat, 19 Mar 2016 kl. 11.02.09, skrev levitte: > >> Hmmm... > >> > >> Actually, I'm thinkg that src2obj() should check if the original file > >> exists as > >> given before changing .S to .s... That should work, since we're always > >> generating 'foo.s' from 'asm/foo.S' (or 'asm/foo.pl', but that's not > >> applicable > >> here)... The directory difference should make it safe. > >> > >> I'll experiment a little, there's also the question of the assembler > >> files in > >> crypto/, but they are a problem in other builds as well... > >> > >> So, fix coming up! But not quite your solution. > >> > >> Vid Fre, 18 Mar 2016 kl. 21.56.37, skrev rainer.j...@kippdata.de: > >>> When building OpenSSL 1.1.0 pre4 on Solaris Sparc for 64 Bits I get > >>> an > >>> error, because before building crypto/bn/sparcv8plus.o first > >>> generates > >>> crypto/bn/asm/sparcv8plus.s from crypto/bn/asm/sparcv8plus.S with the > >>> following command > >>> > >>> gcc -E crypto/bn/asm/sparcv8plus.S > crypto/bn/asm/sparcv8plus.s > >>> > >>> This command is missing CFLAGS. As a consequence, the generated .s > >>> file > >>> does not work for 64 bit compilation and compiling it fails with lots > >>> of > >>> errors of type: > >>> > >>> /usr/ccs/bin/as: "crypto/bn/asm/sparcv8plus.s", line ...: error: > >>> detect > >>> global register use not covered .register pseudo-op > >>> > >>> The pre3 version compiled crypto/bn/asm/sparcv8plus.o directly from > >>> crypto/bn/asm/sparcv8plus.S (upper case ".S") using "gcc -c" and all > >>> CFLAGS, include flags etc. > >>> > >>> So either one does the same for pre4 or one adds a Makefile rule for > >>> crypto/bn/asm/sparcv8plus.s generating it from > >>> crypto/bn/asm/sparcv8plus.S respecting CFLAGS, include dirs etc. or > >>> simply copying it from the .S file. > >>> > >>> I think the switch from .S to .s happens in src2obj() inside > >>> Configurations/unix-Makefile.tmpl. So if it is intentional, you need > >>> to > >>> define and use a generator from .S to .s. > >>> > >>> The following patch worked for me, but I don't know whether it is how > >>> it > >>> should work: > >>> > >>> > >>> --- Configurations/00-base-templates.conf Wed Mar 16 19:18:09 2016 > >>> +++ Configurations/00-base-templates.conf Fri Mar 18 22:31:59 2016 > >>> @@ -198,8 +198,8 @@ > >>> }, > >>> sparcv9_asm => { > >>> template => 1, > >>> - cpuid_asm_src => "sparcv9cap.c sparccpuid.S", > >>> - bn_asm_src => "asm/sparcv8plus.S sparcv9-mont.S > >>> sparcv9a-mont.S vis3-mont.S sparct4-mont.S sparcv9-gf2m.S", > >>> + cpuid_asm_src => "sparcv9cap.c sparccpuid.s", > >>> + bn_asm_src => "sparcv8plus.s sparcv9-mont.S sparcv9a-mont.S > >>> vis3-mont.S sparct4-mont.S sparcv9-gf2m.S", > >>> ec_asm_src => "ecp_nistz256.c ecp_nistz256-sparcv9.S", > >>> des_asm_src => "des_enc-sparc.S fcrypt_b.c dest4-sparcv9.S", > >>> aes_asm_src => "aes_core.c aes_cbc.c aes-sparcv9.S > >>> aest4-sparcv9.S", > >>> @@ -213,7 +213,7 @@ > >>> sparcv8_asm => { > >>> template => 1, > >>> cpuid_asm_src => "", > >>> - bn_asm_src => "asm/sparcv8.S", > >>> + bn_asm_src => "sparcv8.s", > >>> des_asm_src => "des_enc-sparc.S fcrypt_b.c", > >>> perlasm_scheme => "void" > >>> }, > >>> > >>> > >>> (upper case ".S" to lower case ".s" and removal of "asm/"). > >>> > >>> and two build.info changes: > >>> > >>> > >>> --- crypto/build.info Wed Mar 16 19:18:08 2016 > >>> +++ crypto/build.info Fri Mar 18 22:11:43 2016 > >>> @@ -21,6 +21,8 @@ > >>> > >>> GENERATE[x86_64cpuid.s]=x86_64cpuid.pl $(PERLASM_SCHEME) > >>> > >>> +GENERATE[sparccpuid.s]=sparccpuid.S > >>> + > >>> GENERATE[ia64cpuid.s]=ia64cpuid.S > >>> GENERATE[ppccpuid.s]=ppccpuid.pl $(PERLASM_SCHEME) > >>> GENERATE[pariscid.s]=pariscid.pl $(PERLASM_SCHEME) > >>> > >>> > >>> --- crypto/bn/build.info Wed Mar 16 19:18:09 2016 > >>> +++ crypto/bn/build.info Fri Mar 18 22:11:43 2016 > >>> @@ -24,6 +24,9 @@ > >>> $(PERLASM_SCHEME) $(CFLAGS) $(LIB_CFLAGS) $(PROCESSOR) > >>> DEPEND[x86-gf2m.s]=../perlasm/x86asm.pl > >>> > >>> +GENERATE[sparcv8.s]=asm/sparcv8.S > >>> +GENERATE[sparcv8plus.s]=asm/sparcv8plus.S > >>> + > >>> GENERATE[sparcv9a-mont.S]=asm/sparcv9a-mont.pl $(PERLASM_SCHEME) > >>> INCLUDE[sparcv9a-mont.o]=.. > >>> GENERATE[sparcv9-mont.S]=asm/sparcv9-mont.pl $(PERLASM_SCHEME) > >>> > >>> > >>> This seems to be consistent with how it is done for > >>> > >>> crypto/ia64cpuid.S > >>> crypto/aes/asm/aes-ia64.S > >>> crypto/bn/asm/ia64.S > >>> > >>> The same changes probably need to be done for > >>> > >>> crypto/s390xcpuid.S > >>> crypto/bn/asm/s390x.S > >>> > >>> Regards, > >>> > >>> Rainer > >>> > >> > >> > >> -- > >> Richard Levitte > >> levi...@openssl.org > > > > > > -- > > Richard Levitte > > levi...@openssl.org > -- Richard Levitte levi...@openssl.org -- Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4447 Please log in as guest with password guest if prompted -- openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev