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 -- 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