Merge pull request 'Changes to compile openssl-3.1.7 in vx6.9' (#4) from ossl_compilation into master

Reviewed-on: http://13.234.246.121:3000/Neominds/ossl35vx69/pulls/4
This commit is contained in:
2026-07-30 18:36:42 +05:30
committed by neelimap
parent 122392cfc0
commit b4aed7ab58
15 changed files with 698 additions and 58 deletions
+1 -1
View File
@@ -268,7 +268,7 @@ ifndef _WRS_CONFIG_MEM_ALLOT
DUAL_SUBDIRS += demo
endif
GNU_SUBDIRS =
GNU_SUBDIRS = openssl
DIAB_SUBDIRS =
@@ -798,10 +798,9 @@ int ipcrypto_init_internal(SEM_ID semId)
#if defined (_WRS_KERNEL)
/* use shareable FILEs rather than task-specific stdout/stderr */
FILE * fpout = _Files[1];
FILE * fperr = _Files[2];
bio_out = BIO_new_fp(fpout, BIO_NOCLOSE | BIO_FP_TEXT);
bio_err = BIO_new_fp(fperr, BIO_NOCLOSE | BIO_FP_TEXT);
bio_out = BIO_new_fp(stdout, BIO_NOCLOSE | BIO_FP_TEXT);
bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT);
#else
bio_out = BIO_new_fp(stdout, BIO_NOCLOSE | BIO_FP_TEXT);
bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT);
@@ -967,7 +967,23 @@ int RAND_set_seed_source_type(OSSL_LIB_CTX *ctx, const char *seed,
#if defined(OPENSSL_SYS_VXWORKS_SUPPORT)&&!defined(FIPS_MODULE)
#include <vxWorks.h>
#include <randomNumGen.h>
#include <stdLib.h>
#include <tickLib.h>
int randPseudoBytes(unsigned char * randBuf, int numOfBytes)
{
int i;
srand((unsigned int)tickGet());
for (i = 0; i < numOfBytes; i++)
{
/* take lowest 8 bits */
randBuf[i] = (uint8_t)(rand() & 0xFF);
}
return OK;
}
int RAND_poll(void)
{
@@ -59,7 +59,6 @@ use OpenSSL::stackhash qw(generate_stack_macros);
typedef int once_flag;
typedef unsigned int tss_t;
# ifndef __cplusplus
#include <threads.h>
# endif
# endif
@@ -500,6 +499,15 @@ typedef LONG CRYPTO_ONCE;
typedef once_flag CRYPTO_ONCE;
typedef tss_t CRYPTO_THREAD_LOCAL;
typedef TASK_ID CRYPTO_THREAD_ID;
typedef struct
{
int initialized;
SEM_ID sem;
}CRYPTO_ONCE_STATIC_INIT;
# define ONCE_FLAG_INIT {0, NULL}
# define CRYPTO_ONCE_STATIC_INIT ONCE_FLAG_INIT
# else
# if defined(__TANDEM) && defined(_SPT_MODEL_)
@@ -31,7 +31,29 @@
#endif
#if defined(OPENSSL_SYS_VXWORKS)
# include <randomNumGen.h>
#include <stdLib.h>
#include <tickLib.h>
int randSecure (void)
{
return OK;
}
STATUS randUBytes (unsigned char * randBuf, int numOfBytes)
{
int i;
srand((unsigned int)tickGet());
for (i = 0; i < numOfBytes; i++)
{
/* take lowest 8 bits */
randBuf[i] = (uint8_t)(rand() & 0xFF);
}
return OK;
}
#endif
/* Macro to convert two thirty two bit values into a sixty four bit one */
@@ -10,6 +10,7 @@
/* This file has quite some overlap with engines/e_loader_attic.c */
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h> /* isdigit */
#include <assert.h>
@@ -15,23 +15,51 @@ Random Number Library
*/
#include <vxWorks.h>
#include <randomNumGen.h>
#include <stdLib.h>
#include <stdint.h>
#include <unistd.h>
#include <tickLib.h>
#include <openssl/rand.h>
/*
* Writes `len` random bytes into `buf`.
* Arguments:
* buf - pointer to a buffer provided by the caller
* len - number of random bytes to generate
*
* Returns:
* 0 on success
*/
int fill_random_bytes(uint8_t *buf, int len) {
int i;
srand((unsigned int)tickGet());
for (i = 0; i < len; i++) {
/* take lowest 8 bits */
buf[i] = (uint8_t)(rand() & 0xFF);
}
return 0;
}
static int vxRandLibSeed(const void *buf, int num)
{
return randAdd(buf, num, num);
fill_random_bytes ((uint8_t *)buf, num);
srand (buf);
return OK;
}
static int vxRandLibBytes(unsigned char *buf, int num)
{
int rc;
rc = randABytes(buf, num);
if (rc == OK)
return 1;
return 0;
fill_random_bytes ((uint8_t *)buf, num);
return OK;
}
static void vxRandLibCleanup(void)
@@ -41,21 +69,28 @@ static void vxRandLibCleanup(void)
static int vxRandLibAdd(const void *buf, int num, double entropy)
{
return randAdd(buf, num, (int)entropy);
fill_random_bytes ((uint8_t *)buf, num);
srand (buf);
return OK;
}
static int vxRandLibPseudorand(unsigned char *buf, int num)
{
int rc;
rc = randUBytes(buf, num);
if (rc == OK)
return 1;
return 0;
fill_random_bytes ((uint8_t *)buf, num);
return 1;
}
static int vxRandLibStatus(void)
{
return randSecure();
int i;
for (i=0; i< 2; i++)
sleep (1);
return OK;
}
static struct rand_meth_st vxRandLibMethSt =
@@ -1,4 +1,4 @@
# Makefile - for openssl
# Makefile - for openssl_src
#
# Copyright (c) 2019-2025 Wind River Systems, Inc.
#
@@ -8,7 +8,29 @@
#
include $(WIND_KRNL_MK)/defs.ver.mk
TGT_DIR=$(WIND_BASE)/target
PKG_SRC_BUILD_DIR=$(VSB_DIR)/3pp/openssl-3.1.7
OPENSSL_COMPRSS_DIR=$(WIND_HOME)/vxworks-6.9/target/src/openssl/OPENSSL
KERNEL_PUBLIC_INCLUDE_DIR=$(PKG_SRC_BUILD_DIR)/krnl/h/public
#for applying patch
PATCH=$(WIND_HOME)/vxworks-6.9/host/msys2-x86-win64/usr/bin/patch.exe
OPENSSL_SRC_DIR=$(WIND_HOME)/vxworks-6.9/target/src/openssl/openssl_src
SRC_PATCH_DIR=$(WIND_HOME)/vxworks-6.9/target/src/openssl/OPENSSL/openssl-openssl-3.1.7
# hardcoded for now -
_WRS_CONFIG_OPENSSL_OPTIONS= no-aria no-blake2 no-camellia no-chacha no-md2 no-ocb no-poly1305 no-rc2 no-scrypt no-seed no-siphash no-sm2 no-sm3 no-sm4 no-cms no-cmp no-err no-autoerrinit no-filenames no-ct no-ec2m no-multiblock no-rfc3779 no-srp no-tests
_WRS_CONFIG_OPENSSL_IPNET_OPTIONS=
VXWORKS_MAK=vxworks.krnl.mak
VXE=openssl
PKG_NAME=openssl-3.1.7
MAKECMDGOALS=_mk
#MAKE_ARGS needs depends on BSP. Example shown below:-
#CPU=SIMNT TOOL=llvm TOOL_VERSION=llvm_2016_04 _CC_VERSION=llvm_18_1_8_1 _WRS_CONFIG_ENDIAN=little _WRS_CONFIG_FP=hard VSB_DIR=C:/25.09/workbench-4/workspace/VSB2_vxSim ROOT_DIR=C:/25.09/workbench-4/workspace/VSB2_vxSim/usr/root
MAKE_ARGS="CPU=SIMNT TOOL=gnu TOOL_VERSION=llvm_2016_04 _CC_VERSION=llvm_18_1_8_1 _WRS_CONFIG_ENDIAN=little _WRS_CONFIG_FP=hard VSB_DIR=C:/25.09/workbench-4/workspace/VSB2_vxSim ROOT_DIR=C:/25.09/workbench-4/workspace/VSB2_vxSim/usr/root"
include $(VSB_DIR)/h/config/auto.conf
PKG_VER := 3.1.7
@@ -24,7 +46,7 @@ else
EXCLUDED_PATCHES = armv4cpuid.pl.patch
endif
include $(WIND_KRNL_MK)/rules.unix.ports.mk
#include $(WIND_KRNL_MK)/rules.unix.ports.mk
ifeq 'x86-win32' '$(WIND_HOST_TYPE)'
@@ -104,10 +126,6 @@ else
BUILD_TYPE := --release
endif
ifdef _WRS_CONFIG_OPENSSL_FIPSMODULE
_WRS_CONFIG_OPENSSL_OPTIONS += enable-fips
endif
OPENSSL_VSB_OPTIONS = $(_WRS_CONFIG_OPENSSL_OPTIONS) $(_WRS_CONFIG_OPENSSL_IPNET_OPTIONS)
ifeq (, $(findstring enable-fips, $(_WRS_CONFIG_OPENSSL_OPTIONS)))
@@ -125,16 +143,26 @@ ifeq 'x86-win32' '$(WIND_HOST_TYPE)'
export CONFIGURE_CMD := $(CONFIGURE_CMD) PERL=$(WIND_BASE)/host/msys2-x86-win64/usr/bin/perl5
endif
ifeq "$(BUILDSTAGE)" "PREBUILD"
PUBLIC_INCLUDE_DIRS = include/openssl
PUBLIC_INCLUDE_DIRS := $(addprefix $(PKG_SRC_BUILD_DIR)/,$(PUBLIC_INCLUDE_DIRS))
PUBLIC_INCLUDE_DIRS := $(PKG_SRC_BUILD_DIR)/$(PUBLIC_INCLUDE_DIRS)
OPENSSL_TEST_PATH := $(PKG_SRC_BUILD_DIR)/test
OPENSSL_TEST_SCRIPT_DIR := vx-test-script
OPENSSL_TEST_SCRIPT_PATH := $(OPENSSL_TEST_PATH)/$(OPENSSL_TEST_SCRIPT_DIR)
target: get-openssl \
$(OPENSSL_TEST_SCRIPT_PATH) \
$(PKG_SRC_BUILD_DIR)/include/openssl/configuration.h \
$(PUBLIC_INCLUDE_DIRS)
cd $(PKG_SRC_BUILD_DIR)/krnl && $(MAKE) -f $(VXWORKS_MAK) VXE=$@ PKG_NAME=$(PKG_NAME) PKG_VER=$(PKG_VER) $(MAKECMDGOALS)
get-openssl:
cd $(VSB_DIR) && mkdir -p 3pp
cp -r $(OPENSSL_COMPRSS_DIR)/$(PKG_NAME) $(VSB_DIR)/3pp/$(PKG_NAME)
$(OPENSSL_TEST_SCRIPT_PATH) : $(OPENSSL_TEST_SCRIPT_DIR)/generate_test_buildinfo $(OPENSSL_TEST_SCRIPT_DIR)/adapt_test_src_file
echo "pre-process openssl test"
@@ -151,26 +179,16 @@ $(PKG_SRC_BUILD_DIR)/include/openssl/configuration.h:
echo "generating configuration.h and other generated headers"
cd $(PKG_SRC_BUILD_DIR); \
$(PERL_NAME) $(CONFIGURE_CMD) > /dev/null 2>&1; \
$(MAKE) build_generated
$(MAKE) build_generated;
mkdir -p $(PKG_SRC_BUILD_DIR)/krnl
mkdir -p $(PKG_SRC_BUILD_DIR)/krnl/h
mkdir -p $(PKG_SRC_BUILD_DIR)/krnl/h/public
cp -r -u -L $(PKG_SRC_BUILD_DIR)/include/openssl/ $(KERNEL_PUBLIC_INCLUDE_DIR)
cp $(VXWORKS_MAK) $(PKG_SRC_BUILD_DIR)/krnl
$(PUBLIC_INCLUDE_DIRS) : prebuild $(OPENSSL_TEST_SCRIPT_PATH) $(PKG_SRC_BUILD_DIR)/include/openssl/configuration.h
cp -r -u -L $@ $(VSB_USER_PUBLIC_INCLUDE_DIR)
cp -r -u -L $@ $(VSB_KERNEL_PUBLIC_INCLUDE_DIR)
default : $(PUBLIC_INCLUDE_DIRS)
endif
ifeq "$(BUILDSTAGE)" "BUILD"
export PKG_SRC_BUILD_DIR := $(PKG_SRC_BUILD_DIR)/krnl
$(shell mkdir -p $(PKG_SRC_BUILD_DIR))
endif
ifeq "$(BUILDSTAGE)" "POST_USR_BUILD_STATIC"
export PKG_SRC_BUILD_DIR := $(PKG_SRC_BUILD_DIR)/usr
$(shell mkdir -p $(PKG_SRC_BUILD_DIR))
endif
ifeq "$(BUILDSTAGE)" "POST_USR_BUILD_SHARED"
export PKG_SRC_BUILD_DIR := $(PKG_SRC_BUILD_DIR)/usr
$(shell mkdir -p $(PKG_SRC_BUILD_DIR))
endif
$(PUBLIC_INCLUDE_DIRS) : $(OPENSSL_TEST_SCRIPT_PATH) $(PKG_SRC_BUILD_DIR)/include/openssl/configuration.h
mkdir -p $(PKG_SRC_BUILD_DIR)/krnl
mkdir -p $(PKG_SRC_BUILD_DIR)/krnl/h
mkdir -p $(PKG_SRC_BUILD_DIR)/krnl/h/public
cp -r -u -L $(PKG_SRC_BUILD_DIR)/include/openssl/ $(KERNEL_PUBLIC_INCLUDE_DIR)
cp $(VXWORKS_MAK) $(PKG_SRC_BUILD_DIR)/krnl
@@ -7,9 +7,12 @@
# of an applicable Wind River license agreement.
#
include $(VSB_DIR)/h/config/auto.conf
TGT_DIR=$(WIND_BASE)/target
VX_CFLAGS = $(patsubst '-D_VSB_CONFIG_FILE="%"',,$(subst -ansi,,$(CFLAGS))) $(OPTION_DEPEND_GEN_D)
include $(VSB_DIR)/h/config/auto.conf
include $(TGT_DIR)/h/make/defs.library
VX_CFLAGS = $(patsubst -D_VSB_CONFIG_FILE=\"%\",-D_VSB_CONFIG_FILE=\\\"%\\\",$(subst -ansi,,$(CFLAGS))) $(OPTION_DEPEND_GEN_D)
ifdef _WRS_CONFIG_ENDIAN_little
VX_CFLAGS += -DL_ENDIAN
@@ -59,7 +62,7 @@ default : _mk
ifneq (, $(findstring enable-fips, $(CONFIGURE_CMD)))
_mk: Makefile build install fipsobjlist fipsintall $(SIGN_LIB)
else
_mk: Makefile build install
_mk: Makefile build
endif
Makefile:
@@ -67,7 +70,7 @@ Makefile:
$(PERL_NAME) ../$(CONFIGURE_CMD) $(VX_CONFIGURE_OPTS) > /dev/null 2>&1
build: Makefile
@echo building $(VSBL_NAME) from generated Makefile
@echo building OPENSSL from generated Makefile
ifdef _WRS_CONFIG_SBOM
$(MAKE) -f Makefile CC="$(CC)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" _WRS_CONFIG_SBOM=1
else
@@ -139,7 +142,7 @@ $(SIGN_LIB) : fipsintall
$(DKM_ENCRYPT_CMD) fips.out
endif
include $(WIND_KRNL_MK)/rules.library.mk
include $(TGT_DIR)/h/make/rules.library
#
# this code is 3rd party. Suppress all compiler warnings