So I'm wondering, what happens if you apply the attached patch? 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 -- Ticket here: http://rt.openssl.org/Ticket/Display.html?id=4447 Please log in as guest with password guest if prompted
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 1923acc..badbdba 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -851,7 +851,12 @@ EOF sub src2obj { my %args = @_; my $obj = $args{obj}; - my @srcs = map { (my $x = $_) =~ s/\.S$/.s/; $x } ( @{$args{srcs}} ); + my @srcs = map { if ($unified_info{generate}->{$_}) { + (my $x = $_) =~ s/\.S$/.s/; $x + } else { + $_ + } + } ( @{$args{srcs}} ); my $srcs = join(" ", @srcs); my $deps = join(" ", @srcs, @{$args{deps}}); my $incs = join("", map { " -I".$_ } @{$args{incs}});
-- openssl-dev mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev