Commit 488f16e3 authored by Matt Caswell's avatar Matt Caswell
Browse files

Fix a problem if CFLAGS is too long cversion.c fails to compile when config


is run with --strict-warnings.

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent c0fc27f8
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -64,12 +64,7 @@ fips: cryptlib.o thr_id.o uid.o $(CPUID_OBJ)
		done;

buildinf.h: ../Makefile
	( echo "#ifndef MK1MF_BUILD"; \
	echo '  /* auto-generated by crypto/Makefile for crypto/cversion.c */'; \
	echo '  #define CFLAGS "$(CC) $(CFLAG)"'; \
	echo '  #define PLATFORM "$(PLATFORM)"'; \
	echo "  #define DATE \"`LC_ALL=C LC_TIME=C date`\""; \
	echo '#endif' ) >buildinf.h
	$(PERL) $(TOP)/util/mkbuildinf.pl "$(CFLAGS)" "$(PLATFORM)" >buildinf.h

x86cpuid.s:	x86cpuid.pl perlasm/x86asm.pl
	$(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@
+3 −12
Original line number Diff line number Diff line
@@ -69,10 +69,7 @@ const char *SSLeay_version(int t)
	if (t == SSLEAY_BUILT_ON)
		{
#ifdef DATE
		static char buf[sizeof(DATE)+11];

		BIO_snprintf(buf,sizeof buf,"built on: %s",DATE);
		return(buf);
		return(DATE);
#else
		return("built on: date not available");
#endif
@@ -80,10 +77,7 @@ const char *SSLeay_version(int t)
	if (t == SSLEAY_CFLAGS)
		{
#ifdef CFLAGS
		static char buf[sizeof(CFLAGS)+11];

		BIO_snprintf(buf,sizeof buf,"compiler: %s",CFLAGS);
		return(buf);
		return(cflags);
#else
		return("compiler: information not available");
#endif
@@ -91,10 +85,7 @@ const char *SSLeay_version(int t)
	if (t == SSLEAY_PLATFORM)
		{
#ifdef PLATFORM
		static char buf[sizeof(PLATFORM)+11];

		BIO_snprintf(buf,sizeof buf,"platform: %s", PLATFORM);
		return(buf);
		return(PLATFORM);
#else
		return("platform: information not available");
#endif

util/mkbuildinf.pl

0 → 100755
+35 −0
Original line number Diff line number Diff line
#!/usr/local/bin/perl

my ($cflags, $platform) = @ARGV;

$cflags = "compiler: $cflags";
$date = localtime();
print <<"END_OUTPUT";
#ifndef MK1MF_BUILD
    /* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */
    #define CFLAGS
    /*
     * Generate CFLAGS as an array of individual characters. This is a
     * workaround for the situation where CFLAGS gets too long for a C90 string
     * literal
     */
    static const char cflags[] = {
END_OUTPUT
my $ctr = 0;
foreach my $c (split //, $cflags) {
    # Max 18 characters per line
    if  (($ctr++ % 18) == 0) {
        if ($ctr != 0) {
            print "\n";
        }
        print "        ";
    }
    print "'$c',";
}
print <<"END_OUTPUT";
'\\0'
    };
    #define PLATFORM "platform: $platform"
    #define DATE "built on: $date"
#endif
END_OUTPUT