c6x/* "facelift":
- make scripts executable;
- "parameterize" platform selection in c6x/do_fips;
- add c6x/fips_algvs.mak;
- add c6x/run6x.js launcher for more recent CCS versions;
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4265)
(cherry picked from commit 781280094a
)
This commit is contained in:
parent
7d91d9ea6b
commit
e576b67e1a
9 changed files with 115 additions and 4 deletions
|
@ -624,13 +624,14 @@ my %table=(
|
|||
"uClinux-dist64","$ENV{'CC'}:\$(CFLAGS)::-D_REENTRANT::\$(LDFLAGS) \$(LDLIBS):SIXTY_FOUR_BIT_LONG:${no_asm}:$ENV{'LIBSSL_dlfcn'}:linux-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):$ENV{'RANLIB'}::",
|
||||
|
||||
"c64xplus","cl6x:-mv6400+ -o2 -ox -ms -pden -DNO_SYS_TYPES_H -DGETPID_IS_MEANINGLESS -DMD32_REG_T=int -DOPENSSL_SMALL_FOOTPRINT:<c6x.h>::DSPBIOS::BN_LLONG:c64xpluscpuid.o:bn-c64xplus.o c64xplus-gf2m.o::aes-c64xplus.o aes_cbc.o aes_ctr.o:::sha1-c64xplus.o sha256-c64xplus.o sha512-c64xplus.o:::::::ghash-c64xplus.o::void:",
|
||||
"c64x","cl6x:-mv6400 -o2 -ox -ms -as -pden -DNO_SYS_TYPES_H -DGETPID_IS_MEANINGLESS -DMD32_REG_T=int -DOPENSSL_SMALL_FOOTPRINT:<c6x.h>::DSPBIOS:::c64xcpuid.o:::aes-c64x.o aes_cbc.o aes_ctr.o:::sha1-c64x.o sha256-c64x.o sha512-c64x.o:::::::::void:",
|
||||
|
||||
);
|
||||
|
||||
my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A
|
||||
debug-VC-WIN64I debug-VC-WIN64A
|
||||
VC-NT VC-CE VC-WIN32 debug-VC-WIN32
|
||||
BC-32 c64xplus
|
||||
BC-32 c64xplus c64x
|
||||
netware-clib netware-clib-bsdsock
|
||||
netware-libc netware-libc-bsdsock);
|
||||
|
||||
|
|
7
c6x/do_fips
Normal file → Executable file
7
c6x/do_fips
Normal file → Executable file
|
@ -1,6 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
perl Configure c64xplus fipscanisteronly no-engine
|
||||
if ! which cl6x > /dev/null 2>&1; then
|
||||
echo 'fatal: cl6x is not on $PATH'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
perl Configure ${C6XPLATFORM:-c64xplus} fipscanisteronly no-engine
|
||||
perl util/mkfiles.pl > MINFO
|
||||
perl util/mk1mf.pl auto > c6x/fips.mak
|
||||
make -f c6x/fips.mak
|
||||
|
|
14
c6x/fips_algvs.mak
Normal file
14
c6x/fips_algvs.mak
Normal file
|
@ -0,0 +1,14 @@
|
|||
CC=cl6x
|
||||
CFLAGS=-mv$${C6XSILICON:-6400+} -o2 -I. -Ic6x/inc -Ifips -DNO_SYS_TYPES_H
|
||||
OBJ_D=c6x/tmp
|
||||
OUT_D=c6x
|
||||
|
||||
all: $(OUT_D)/fips_algvs.out
|
||||
|
||||
$(OBJ_D)/fips_algvs.obj: test/fips_algvs.c
|
||||
$(CC) --obj_directory=$(OBJ_D) $(CFLAGS) -c $<
|
||||
|
||||
$(OUT_D)/fips_algvs.out: $(OBJ_D)/fips_algvs.obj $(OUT_D)/fipscanister.obj c6x/fips_algvs.cmd
|
||||
$(OUT_D)/fips_standalone_sha1 -verify $(OUT_D)/fipscanister.obj
|
||||
$(CC) -z -o $@ -m $(OUT_D)/fips_algvs.map $< $(OUT_D)/fipscanister.obj c6x/fips_algvs.cmd
|
||||
$(OUT_D)/incore6x $@ || rm $@
|
0
c6x/fips_standalone_sha1
Normal file → Executable file
0
c6x/fips_standalone_sha1
Normal file → Executable file
0
c6x/incore6x
Normal file → Executable file
0
c6x/incore6x
Normal file → Executable file
0
c6x/run6x
Normal file → Executable file
0
c6x/run6x
Normal file → Executable file
91
c6x/run6x.js
Executable file
91
c6x/run6x.js
Executable file
|
@ -0,0 +1,91 @@
|
|||
#!/usr/bin/env dss.sh
|
||||
//
|
||||
// Debug Server Scripting C6x launcher.
|
||||
//
|
||||
|
||||
importPackage(Packages.com.ti.debug.engine.scripting);
|
||||
importPackage(Packages.com.ti.ccstudio.scripting.environment);
|
||||
importPackage(Packages.java.lang);
|
||||
|
||||
if (arguments.length == 0) {
|
||||
// Extract script name from eclipse
|
||||
var regex = new RegExp("-dss\\.rhinoArgs\n(.*)");
|
||||
var matches = regex.exec(environment["eclipse.commands"]);
|
||||
|
||||
System.err.println("Usage: " + matches[1] + " executable [args]");
|
||||
System.err.println();
|
||||
System.err.println("You're also required to set CCSTARGETCONFIG " +
|
||||
"environment variable to appoint");
|
||||
System.err.println("proper .ccxml file, customarily one of " +
|
||||
"$HOME/ti/CCSTargetConfigurations/*.ccxml");
|
||||
quit(1);
|
||||
}
|
||||
|
||||
try {
|
||||
var prog = arguments[0];
|
||||
var script = ScriptingEnvironment.instance();
|
||||
|
||||
var debugServer = script.getServer("DebugServer.1");
|
||||
|
||||
// CCSTARGETCONFIG environment variable should point at proper .ccxml,
|
||||
// customarily one of $HOME/ti/CCSTargetConfigurations/*.ccxml.
|
||||
debugServer.setConfig(System.getenv("CCSTARGETCONFIG"));
|
||||
|
||||
var debugSession = debugServer.openSession("*", "*");
|
||||
|
||||
// Redirect GEL output to |prog|.gel file, so that it doesn't clobber
|
||||
// standard output from the program...
|
||||
var dot = prog.lastIndexOf(".");
|
||||
var gel_out = prog + ".gel";
|
||||
if (dot > 0) {
|
||||
gel_out = prog.substr(0,dot) + ".gel";
|
||||
}
|
||||
debugSession.expression.evaluate('GEL_EnableFileOutput("'
|
||||
+ gel_out + '", 0, 0)');
|
||||
|
||||
debugSession.target.connect();
|
||||
|
||||
// It should be noted that "current working directory" for program
|
||||
// executed on the target system is one where |prog| resides, and
|
||||
// not where script executed [as one would expect]...
|
||||
debugSession.memory.loadProgram(prog, arguments);
|
||||
|
||||
// Pull exit()'s address and set breakpoint, then just execute till
|
||||
// it's reached...
|
||||
var exitAddr = debugSession.symbol.getAddress("exit");
|
||||
debugSession.breakpoint.add(exitAddr);
|
||||
|
||||
while (1) {
|
||||
debugSession.target.run();
|
||||
|
||||
var PC = debugSession.expression.evaluate("PC");
|
||||
if (PC == exitAddr) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Snatch value passed to exit(), so that it can be passed down to
|
||||
// shell as exit code from this script...
|
||||
var exitCode = debugSession.expression.evaluate("A4");
|
||||
|
||||
// Last run to termination...
|
||||
debugSession.target.run();
|
||||
// Clean up...
|
||||
debugSession.terminate();
|
||||
debugServer.stop();
|
||||
|
||||
// It should be noted that there is kind of a bug in C6x run-time.
|
||||
// Return value from main() is not passed to last implicit exit()
|
||||
// call [as it would on other systems], but instead constant 1 is
|
||||
// passed, which conventionally indicates an error. So that if one
|
||||
// wants to pass specific exit code, or even 0 indicating "success",
|
||||
// one has to call exit() explicitly instead of relying on value
|
||||
// returned by main()...
|
||||
quit(exitCode);
|
||||
|
||||
} catch (e) {
|
||||
// We catch everything, because default handler terminates script with
|
||||
// "success" exit code upon exception...
|
||||
System.err.println(e.rhinoException);
|
||||
quit(139);
|
||||
}
|
|
@ -150,7 +150,7 @@ extern int fips_rsavtest_main(int argc, char **argv);
|
|||
extern int fips_shatest_main(int argc, char **argv);
|
||||
extern int fips_test_suite_main(int argc, char **argv);
|
||||
|
||||
#if !defined(_TMS320C6400_PLUS)
|
||||
#if !defined(_TMS320C6400_PLUS) && !defined(_TMS320C6400)
|
||||
#include "fips_aesavs.c"
|
||||
#include "fips_cmactest.c"
|
||||
#include "fips_desmovs.c"
|
||||
|
|
|
@ -249,7 +249,7 @@ elsif (($platform eq "netware-clib") || ($platform eq "netware-libc") ||
|
|||
$BSDSOCK=1 if ($platform eq "netware-libc-bsdsock") || ($platform eq "netware-clib-bsdsock");
|
||||
require 'netware.pl';
|
||||
}
|
||||
elsif ($platform eq "c64xplus")
|
||||
elsif ($platform =~ /^c64x/)
|
||||
{
|
||||
require "TI_CGTOOLS.pl";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue