compile openssl for Arm A9 & VxWorks

30 views
Skip to first unread message

Damodhar Boddukuri

unread,
Jul 17, 2024, 12:42:31 PM7/17/24
to openss...@openssl.org

Hi openSSL users,

 

I would like to port openssl for Arm A9 & VxWorks Target. If someone can share the details, Its really helpful for me.

 

Thanks in advance.

 

 

Thanks & Regards,

Damodhar.

+91-7702191212

 


General

Neil Horman

unread,
Jul 17, 2024, 2:46:22 PM7/17/24
to Damodhar Boddukuri, openss...@openssl.org
There are already several targets defined for vxworks.  First step I would think would be cloning one of those targets in Configurations/10-main.conf for your purposes and adjusting the settings accordingly:

"vxworks-ppc60x" => {        <= Change this to "vxworks-arm9' or some such
        inherit_from     => [ "BASE_unix" ],    <= Leave this alone I imagine
        CC               => "ccppc", <= set the appropriate compiler command here
        CFLAGS           => "-O2 -Wall -fstrength-reduce", <= For this and below, adjust as needed
        cflags           => "-mrtp -mhard-float -mstrict-align -fno-implicit-fp -fno-builtin -fno-strict-aliasing",
        cppflags         => combine("-D_REENTRANT -DPPC32_fp60x -DCPU=PPC32",
                                    "_DTOOL_FAMILY=gnu -DTOOL=gnu",
                                    "-I\$(WIND_BASE)/target/usr/h",
                                    "-I\$(WIND_BASE)/target/usr/h/wrn/coreip"),
        sys_id           => "VXWORKS", <= leave this alone
        lflags           => add("-L \$(WIND_BASE)/target/usr/lib/ppc/PPC32/common"), <= Set this to your vxworks library path
        ex_libs          => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"), <= Probably leave this alone too
    },

Damodhar Boddukuri

unread,
Jul 23, 2024, 8:40:45 PM7/23/24
to Neil Horman, openss...@openssl.org
 

Hi,

 

Thank you for the support.

 

I am trying to compile “openSSL cross compilation for target "vxworks-armv7a" in Windows platform”:

 

The target compiler is ccarm.exe

 

Approach-1:

In Linux platform, Added the following target details in 10-main.conf file and ran the ./config <appropriate options>. It generated the configdata.pm, configdata.pm, Makefile.in, Makefile, include/openssl/configuration.h files for the target "vxworks-armv7a". When I run the make, it generating the required files with perl script, But its unable to invoke the compiler ccarm.exe because it’s a .exe file.

 

When I move entire source-code to windows platform try to run the make, its giving errors in the perl script.

 

 

    "vxworks-armv7a" => {

        inherit_from     => [ "BASE_unix" ],

                             CC               => "ccarm",

        CFLAGS           => '-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall -I$(TGT_DIR)/config/all -I$(TGT_DIR)/h -I$(WIND_HOME)/components/windml-5.3/h -I$(WIND_HOME)/components/webservices-1.8/h -I$(WIND_HOME)/components/webcli-4.9/target/h -I$(WIND_HOME)/components/tcf_agent-1.4/agent -I$(WIND_HOME)/components/stacktrace-1.0/include -I$(WIND_HOME)/components/opc-3.2/h -I$(WIND_HOME)/components/dcom-2.3/h -I$(WIND_HOME)/components/cafe-0.1/hpc/include -I$(WIND_HOME)/components/cafe-0.1/cafe/include -I$(WIND_HOME)/components/ip_net2-6.9/ipcom/config -I$(WIND_HOME)/components/cafe-0.1/vxworks/include -I$(WIND_HOME)/components/windml-5.3/osconfig/vxworks/src -I$(WIND_HOME)/components/tcf_agent-1.4/osconfig/vxworks/src -I$(WIND_HOME)/components/stacktrace-1.0/osconfig/vxworks/src -I$(WIND_HOME)/components/ip_net2-6.9/osconfig/vxworks/src -I$(WIND_HOME)/components/cafe-0.1/osconfig/vxworks/src -I$(WIND_HOME)/components/windml-5.3/osconfig/vxworks/h -I$(WIND_HOME)/components/tcf_agent-1.4/osconfig/vxworks/h -I$(WIND_HOME)/components/stacktrace-1.0/osconfig/vxworks/h -I$(WIND_HOME)/components/ip_net2-6.9/osconfig/vxworks/h -I$(WIND_HOME)/components/cafe-0.1/osconfig/vxworks/h -I$(TGT_DIR)/src/hwif -I$(TGT_DIR)/src/hwif/h -I $(TGT_DIR)/3rdparty/pbcl/h -I. -I$(TGT_DIR)/h/wrn/coreip -I$(TGT_DIR)/src/config -I$(TGT_DIR)/config/comps/src -I$(TGT_DIR)/config/comps/src/dosfs2 -I$(TGT_DIR)/src/drv -I$(TGT_DIR)/src/hwif/h -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" -I$(VSB_INCLUDE_DIR)',

        cflags           => '-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall -I$(TGT_DIR)/config/all -I$(TGT_DIR)/h -I$(WIND_HOME)/components/windml-5.3/h -I$(WIND_HOME)/components/webservices-1.8/h -I$(WIND_HOME)/components/webcli-4.9/target/h -I$(WIND_HOME)/components/tcf_agent-1.4/agent -I$(WIND_HOME)/components/stacktrace-1.0/include -I$(WIND_HOME)/components/opc-3.2/h -I$(WIND_HOME)/components/dcom-2.3/h -I$(WIND_HOME)/components/cafe-0.1/hpc/include -I$(WIND_HOME)/components/cafe-0.1/cafe/include -I$(WIND_HOME)/components/ip_net2-6.9/ipcom/config -I$(WIND_HOME)/components/cafe-0.1/vxworks/include -I$(WIND_HOME)/components/windml-5.3/osconfig/vxworks/src -I$(WIND_HOME)/components/tcf_agent-1.4/osconfig/vxworks/src -I$(WIND_HOME)/components/stacktrace-1.0/osconfig/vxworks/src -I$(WIND_HOME)/components/ip_net2-6.9/osconfig/vxworks/src -I$(WIND_HOME)/components/cafe-0.1/osconfig/vxworks/src -I$(WIND_HOME)/components/windml-5.3/osconfig/vxworks/h -I$(WIND_HOME)/components/tcf_agent-1.4/osconfig/vxworks/h -I$(WIND_HOME)/components/stacktrace-1.0/osconfig/vxworks/h -I$(WIND_HOME)/components/ip_net2-6.9/osconfig/vxworks/h -I$(WIND_HOME)/components/cafe-0.1/osconfig/vxworks/h -I$(TGT_DIR)/src/hwif -I$(TGT_DIR)/src/hwif/h -I $(TGT_DIR)/3rdparty/pbcl/h -I. -I$(TGT_DIR)/h/wrn/coreip -I$(TGT_DIR)/src/config -I$(TGT_DIR)/config/comps/src -I$(TGT_DIR)/config/comps/src/dosfs2 -I$(TGT_DIR)/src/drv -I$(TGT_DIR)/src/hwif/h -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" -I$(VSB_INCLUDE_DIR)',

        cppflags         => combine('-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall -I$(TGT_DIR)/config/all -I$(TGT_DIR)/h -I$(WIND_HOME)/components/windml-5.3/h -I$(WIND_HOME)/components/webservices-1.8/h -I$(WIND_HOME)/components/webcli-4.9/target/h -I$(WIND_HOME)/components/tcf_agent-1.4/agent -I$(WIND_HOME)/components/stacktrace-1.0/include -I$(WIND_HOME)/components/opc-3.2/h -I$(WIND_HOME)/components/dcom-2.3/h -I$(WIND_HOME)/components/cafe-0.1/hpc/include -I$(WIND_HOME)/components/cafe-0.1/cafe/include -I$(WIND_HOME)/components/ip_net2-6.9/ipcom/config -I$(WIND_HOME)/components/cafe-0.1/vxworks/include -I$(WIND_HOME)/components/windml-5.3/osconfig/vxworks/src -I$(WIND_HOME)/components/tcf_agent-1.4/osconfig/vxworks/src -I$(WIND_HOME)/components/stacktrace-1.0/osconfig/vxworks/src -I$(WIND_HOME)/components/ip_net2-6.9/osconfig/vxworks/src -I$(WIND_HOME)/components/cafe-0.1/osconfig/vxworks/src -I$(WIND_HOME)/components/windml-5.3/osconfig/vxworks/h -I$(WIND_HOME)/components/tcf_agent-1.4/osconfig/vxworks/h -I$(WIND_HOME)/components/stacktrace-1.0/osconfig/vxworks/h -I$(WIND_HOME)/components/ip_net2-6.9/osconfig/vxworks/h -I$(WIND_HOME)/components/cafe-0.1/osconfig/vxworks/h -I$(TGT_DIR)/src/hwif -I$(TGT_DIR)/src/hwif/h -I $(TGT_DIR)/3rdparty/pbcl/h -I. -I$(TGT_DIR)/h/wrn/coreip -I$(TGT_DIR)/src/config -I$(TGT_DIR)/config/comps/src -I$(TGT_DIR)/config/comps/src/dosfs2 -I$(TGT_DIR)/src/drv -I$(TGT_DIR)/src/hwif/h -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" -I$(VSB_INCLUDE_DIR)'),

        sys_id           => "VXWORKS",

        lflags           => add('-L$(VSB_DIR)/arm/ARMARCH7/gnu_standard -L$(VSB_DIR)/arm/ARMARCH7/gnu -L$(VSB_DIR)/arm/ARMARCH7/common -L$(VSB_DIR)/arm/ARMARCH7/gnu -L$(VSB_DIR)/arm/ARMARCH7/common -L$(WS_ROOT_DIR)/obj/vxworks-6.9/krnl/lib_smp/arm/ARMARCH7/gnu -L$(WS_ROOT_DIR)/obj/vxworks-6.9/krnl/lib_smp/arm/ARMARCH7/common -L$(WIND_HOME)/components/obj/vxworks-6.9/krnl/lib_smp/arm/ARMARCH7/gnu -L$(WIND_HOME)/components/obj/vxworks-6.9/krnl/lib_smp/arm/ARMARCH7/common'),

        ex_libs          => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"),

    },

 

 

 

Approach-2:

In windows platform, Added the following target details in 10-main.conf file and ran the ./config <appropriate options>. It generated the configdata.pm, configdata.pm, Makefile.in, Makefile, include/openssl/configuration.h files for the target "vxworks-armv7a". When I run the make, it generating the required files with perl script, Its invoking  the compiler ccarm.exe.

 

But its adding unwanted CFLAGS like "ccarm"  /Zi /Fdossl_static.pdb /MT /Zl. Also observed that it’s trying to create .lib libraries, But wanted .a libraries.

 

              "vxworks-armv7a" => {

    inherit_from     => [ "VC-WIN64-common" ],

              CC               => "ccarm",

    CFLAGS           => '-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall -I$(TGT_DIR)\config\all -I$(TGT_DIR)\h -I$(WIND_HOME)\components\windml-5.3\h -I$(WIND_HOME)\components\webservices-1.8\h -I$(WIND_HOME)\components\webcli-4.9\target\h -I$(WIND_HOME)\components\tcf_agent-1.4\agent -I$(WIND_HOME)\components\stacktrace-1.0\include -I$(WIND_HOME)\components\opc-3.2\h -I$(WIND_HOME)\components\dcom-2.3\h -I$(WIND_HOME)\components\cafe-0.1\hpc\include -I$(WIND_HOME)\components\cafe-0.1\cafe\include -I$(WIND_HOME)\components\ip_net2-6.9\ipcom\config -I$(WIND_HOME)\components\cafe-0.1\vxworks\include -I$(WIND_HOME)\components\windml-5.3\osconfig\vxworks\src -I$(WIND_HOME)\components\tcf_agent-1.4\osconfig\vxworks\src -I$(WIND_HOME)\components\stacktrace-1.0\osconfig\vxworks\src -I$(WIND_HOME)\components\ip_net2-6.9\osconfig\vxworks\src -I$(WIND_HOME)\components\cafe-0.1\osconfig\vxworks\src -I$(WIND_HOME)\components\windml-5.3\osconfig\vxworks\h -I$(WIND_HOME)\components\tcf_agent-1.4\osconfig\vxworks\h -I$(WIND_HOME)\components\stacktrace-1.0\osconfig\vxworks\h -I$(WIND_HOME)\components\ip_net2-6.9\osconfig\vxworks\h -I$(WIND_HOME)\components\cafe-0.1\osconfig\vxworks\h -I$(TGT_DIR)\src\hwif -I$(TGT_DIR)\src\hwif\h -I $(TGT_DIR)\3rdparty\pbcl\h -I. -I$(TGT_DIR)\h\wrn\coreip -I$(TGT_DIR)\src\config -I$(TGT_DIR)\config\comps\src -I$(TGT_DIR)\config\comps\src\dosfs2 -I$(TGT_DIR)\src\drv -I$(TGT_DIR)\src\hwif\h -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" -I$(VSB_INCLUDE_DIR)',

    cflags           => '-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall -I$(TGT_DIR)\config\all -I$(TGT_DIR)\h -I$(WIND_HOME)\components\windml-5.3\h -I$(WIND_HOME)\components\webservices-1.8\h -I$(WIND_HOME)\components\webcli-4.9\target\h -I$(WIND_HOME)\components\tcf_agent-1.4\agent -I$(WIND_HOME)\components\stacktrace-1.0\include -I$(WIND_HOME)\components\opc-3.2\h -I$(WIND_HOME)\components\dcom-2.3\h -I$(WIND_HOME)\components\cafe-0.1\hpc\include -I$(WIND_HOME)\components\cafe-0.1\cafe\include -I$(WIND_HOME)\components\ip_net2-6.9\ipcom\config -I$(WIND_HOME)\components\cafe-0.1\vxworks\include -I$(WIND_HOME)\components\windml-5.3\osconfig\vxworks\src -I$(WIND_HOME)\components\tcf_agent-1.4\osconfig\vxworks\src -I$(WIND_HOME)\components\stacktrace-1.0\osconfig\vxworks\src -I$(WIND_HOME)\components\ip_net2-6.9\osconfig\vxworks\src -I$(WIND_HOME)\components\cafe-0.1\osconfig\vxworks\src -I$(WIND_HOME)\components\windml-5.3\osconfig\vxworks\h -I$(WIND_HOME)\components\tcf_agent-1.4\osconfig\vxworks\h -I$(WIND_HOME)\components\stacktrace-1.0\osconfig\vxworks\h -I$(WIND_HOME)\components\ip_net2-6.9\osconfig\vxworks\h -I$(WIND_HOME)\components\cafe-0.1\osconfig\vxworks\h -I$(TGT_DIR)\src\hwif -I$(TGT_DIR)\src\hwif\h -I $(TGT_DIR)\3rdparty\pbcl\h -I. -I$(TGT_DIR)\h\wrn\coreip -I$(TGT_DIR)\src\config -I$(TGT_DIR)\config\comps\src -I$(TGT_DIR)\config\comps\src\dosfs2 -I$(TGT_DIR)\src\drv -I$(TGT_DIR)\src\hwif\h -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" -I$(VSB_INCLUDE_DIR)',

    cppflags         => combine('-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall -I$(TGT_DIR)\config\all -I$(TGT_DIR)\h -I$(WIND_HOME)\components\windml-5.3\h -I$(WIND_HOME)\components\webservices-1.8\h -I$(WIND_HOME)\components\webcli-4.9\target\h -I$(WIND_HOME)\components\tcf_agent-1.4\agent -I$(WIND_HOME)\components\stacktrace-1.0\include -I$(WIND_HOME)\components\opc-3.2\h -I$(WIND_HOME)\components\dcom-2.3\h -I$(WIND_HOME)\components\cafe-0.1\hpc\include -I$(WIND_HOME)\components\cafe-0.1\cafe\include -I$(WIND_HOME)\components\ip_net2-6.9\ipcom\config -I$(WIND_HOME)\components\cafe-0.1\vxworks\include -I$(WIND_HOME)\components\windml-5.3\osconfig\vxworks\src -I$(WIND_HOME)\components\tcf_agent-1.4\osconfig\vxworks\src -I$(WIND_HOME)\components\stacktrace-1.0\osconfig\vxworks\src -I$(WIND_HOME)\components\ip_net2-6.9\osconfig\vxworks\src -I$(WIND_HOME)\components\cafe-0.1\osconfig\vxworks\src -I$(WIND_HOME)\components\windml-5.3\osconfig\vxworks\h -I$(WIND_HOME)\components\tcf_agent-1.4\osconfig\vxworks\h -I$(WIND_HOME)\components\stacktrace-1.0\osconfig\vxworks\h -I$(WIND_HOME)\components\ip_net2-6.9\osconfig\vxworks\h -I$(WIND_HOME)\components\cafe-0.1\osconfig\vxworks\h -I$(TGT_DIR)\src\hwif -I$(TGT_DIR)\src\hwif\h -I $(TGT_DIR)\3rdparty\pbcl\h -I. -I$(TGT_DIR)\h\wrn\coreip -I$(TGT_DIR)\src\config -I$(TGT_DIR)\config\comps\src -I$(TGT_DIR)\config\comps\src\dosfs2 -I$(TGT_DIR)\src\drv -I$(TGT_DIR)\src\hwif\h -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" -I$(VSB_INCLUDE_DIR)'),

    sys_id           => "VXWORKS",

    lflags           => add('-L$(VSB_DIR)\arm\ARMARCH7\gnu_standard -L$(VSB_DIR)\arm\ARMARCH7\gnu -L$(VSB_DIR)\arm\ARMARCH7\common -L$(VSB_DIR)\arm\ARMARCH7\gnu -L$(VSB_DIR)\arm\ARMARCH7\common -L$(WS_ROOT_DIR)\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\gnu -L$(WS_ROOT_DIR)\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\common -L$(WIND_HOME)\components\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\gnu -L$(WIND_HOME)\components\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\common'),

    ex_libs          => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"),

    },

 

 

Please suggest best way to go forward with our requirement.

 

Thanks in advance.

 

 

Thanks & Regards,

Damodhar.

+91-7702191212

 


General

From: Neil Horman <nho...@openssl.org>
Sent: Thursday, July 18, 2024 12:16 AM
To: Damodhar Boddukuri <damodhar....@non.se.com>
Cc: openss...@openssl.org
Subject: Re: compile openssl for Arm A9 & VxWorks

 

[External email: Use caution with links and attachments]


Neil Horman

unread,
Jul 24, 2024, 9:55:08 AM7/24/24
to Damodhar Boddukuri, openss...@openssl.org
If you're trying to build on windows, you don't want to inherit from BASE_unix, you want to inherit from BASE_Windows

Damodhar Boddukuri

unread,
Jul 24, 2024, 12:44:27 PM7/24/24
to Neil Horman, openss...@openssl.org
 

Hi,

 

Thank you for your support. I have tried with the following target. Now, its invoking the compiler.

 

    "vxworks-armv7a" => {

    inherit_from     => [ "BASE_Windows" ],

    CC               => "ccarm",

    cflags           => '-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall  -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" ',

    sys_id           => "VXWORKS",

    lflags           => add('-L$(VSB_DIR)\arm\ARMARCH7\gnu_standard -L$(VSB_DIR)\arm\ARMARCH7\gnu -L$(VSB_DIR)\arm\ARMARCH7\common -L$(VSB_DIR)\arm\ARMARCH7\gnu -L$(VSB_DIR)\arm\ARMARCH7\common -L$(WS_ROOT_DIR)\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\gnu -L$(WS_ROOT_DIR)\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\common -L$(WIND_HOME)\components\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\gnu -L$(WIND_HOME)\components\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\common'),

    ex_libs          => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"),

    AR               => add("ararm"),

    ARFLAGS          => add("-rsv"),

    includes         => ["\$(WIND_BASE)/target/usr/h" ,"\$(WIND_BASE)/target/h" , "\$(VSB_INCLUDE_DIR)"],

    },

             

 

With this, in  Makefile

  1. LIBS= apps\libapps.lib  libcrypto.lib  libssl.lib  providers\libcommon.lib  providers\libdefault.lib  providers\liblegacy.lib  test\libtestutil.lib

Makefile generated library extension with .lib. But our target is expecting .a libraries & .o object files

 

  1. It’s unable to find the include files even though path include path is correct.

Eg: apps\lib\libapps-lib-app_libctx.obj: apps\lib\app_libctx.c

              $(CC)  $(LIB_CFLAGS) -I"." -I"include" -I"apps\include" $(LIB_CPPFLAGS)  -c $(COUTFLAG)$@ "apps\lib\app_libctx.c"

              cmd /C "  $(LIB_CFLAGS) -I"." -I"include" -I"apps\include" $(LIB_CPPFLAGS)  "apps\lib\app_libctx.c" > apps\lib\libapps-lib-app_libctx.d 2>&1"

 

 

I have attached makefile & log captured while executing Config and nmke. Please have a look at & suggest me the way forward to resolve these issues.

makefile_log.zip

Damodhar Boddukuri

unread,
Jul 24, 2024, 12:51:02 PM7/24/24
to Neil Horman, openss...@openssl.org

Hi,

 

Thank you for your support. I have tried with the following target. Now, its invoking the compiler.

 

    "vxworks-armv7a" => {

    inherit_from     => [ "BASE_Windows" ],

    CC               => "ccarm",

    cflags           => '-g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall  -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"$(VSB_CONFIG_FILE)\" ',

    sys_id           => "VXWORKS",

    lflags           => add('-L$(VSB_DIR)\arm\ARMARCH7\gnu_standard -L$(VSB_DIR)\arm\ARMARCH7\gnu -L$(VSB_DIR)\arm\ARMARCH7\common -L$(VSB_DIR)\arm\ARMARCH7\gnu -L$(VSB_DIR)\arm\ARMARCH7\common -L$(WS_ROOT_DIR)\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\gnu -L$(WS_ROOT_DIR)\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\common -L$(WIND_HOME)\components\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\gnu -L$(WIND_HOME)\components\obj\vxworks-6.9\krnl\lib_smp\arm\ARMARCH7\common'),

    ex_libs          => add("-Wl,--defsym,__wrs_rtp_base=0xe0000000"),

    AR               => add("ararm"),

    ARFLAGS          => add("-rsv"),

    includes         => ["\$(WIND_BASE)/target/usr/h" ,"\$(WIND_BASE)/target/h" , "\$(VSB_INCLUDE_DIR)"],

    },

             

 

With this, in  Makefile

  1. LIBS= apps\libapps.lib  libcrypto.lib  libssl.lib  providers\libcommon.lib  providers\libdefault.lib  providers\liblegacy.lib  test\libtestutil.lib

Makefile generated library extension with .lib. But our target is expecting .a libraries & .o object files

 

  1. It’s unable to find the include files even though path include path is correct.

Eg: apps\lib\libapps-lib-app_libctx.obj: apps\lib\app_libctx.c

              $(CC)  $(LIB_CFLAGS) -I"." -I"include" -I"apps\include" $(LIB_CPPFLAGS)  -c $(COUTFLAG)$@ "apps\lib\app_libctx.c"

              cmd /C "  $(LIB_CFLAGS) -I"." -I"include" -I"apps\include" $(LIB_CPPFLAGS)  "apps\lib\app_libctx.c" > apps\lib\libapps-lib-app_libctx.d 2>&1"

 

 

I have attached makefile & log captured while executing Config and nmke. Please have a look at & suggest me the way forward to resolve these issues.

 

Thanks in advance.

 

Log:

perl Configure vxworks-armv7a no-shared no-dso no-pic no-aria no-async no-autoload-config no-blake2 no-bf no-camellia no-cast no-chacha no-cmac no-cmp no-cms no-comp no-ct no-des no-dgram no-dtls no-engine no-filenames no-gost no-idea no-ktls no-mdc2 no-md2 no-md4 no-multiblock no-nextprotoneg no-ocsp no-ocb no-poly1305 no-psk no-rc2 no-rc4 no-rc5 no-rmd160 no-scrypt no-seed no-siphash no-siv no-sm2 no-sm3 no-sm4 no-srp no-srtp no-sse2 no-ssl3 no-ssl3-method no-threads no-ts no-ui-console no-whirlpool no-asm -DOPENSSL_NO_SECURE_MEMORY -DOPENSSL_SMALL_FOOTPRINT

 

>nmake

 

        "ccarm"  -g -fno-builtin -t7 -mfpu=vfp -mfloat-abi=softfp -ansi -fno-zero-initialized-in-bss -Wall  -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DARMEL -DCPU_CORTEXA8 -DARMMMU=ARMMMU_CORTEXA8 -DARMCACHE=ARMCACHE_CORTEXA8 -DIP_PORT_VXWORKS=69 -DINET -D_WRS_VX_SMP -D_VSB_CONFIG_FILE=\"\"  -I"." -I"include" -I"apps\include" -D"OPENSSLDIR=\"C:\\Program Files\\Common Files\\SSL\"" -D"ENGINESDIR=\"C:\\Program Files\\OpenSSL\\lib\\engines-3\"" -D"MODULESDIR=\"C:\\Program Files\\OpenSSL\\lib\\ossl-modules\"" -D"OPENSSL_BUILDING_OPENSSL" -D"NDEBUG" -I"C:\Dev\WindRiverDSMPDDR_V18\vxworks-6.9/target/usr/h" -I"C:\Dev\WindRiverDSMPDDR_V18\vxworks-6.9/target/h" -I"" -DOPENSSL_NO_SECURE_MEMORY -DOPENSSL_SMALL_FOOTPRINT  -c apps\lib\libapps-lib-app_libctx.obj "apps\lib\app_libctx.c"

ccarm.EXE: apps\lib\libapps-lib-app_libctx.obj: No such file or directory

In file included from c:\windriverdsmpddr_v18\gnu\4.3.3-vxworks-6.9\x86-win32\bin\../../lib/gcc/arm-wrs-vxworks/4.3.3/include-fixed/syslimits.h:7,

                 from c:\windriverdsmpddr_v18\gnu\4.3.3-vxworks-6.9\x86-win32\bin\../../lib/gcc/arm-wrs-vxworks/4.3.3/include-fixed/limits.h:11,

                 from include/openssl/types.h:26,

                 from apps\include/app_libctx.h:13,

                 from apps\lib\app_libctx.c:9:

c:\windriverdsmpddr_v18\gnu\4.3.3-vxworks-6.9\x86-win32\bin\../../lib/gcc/arm-wrs-vxworks/4.3.3/include-fixed/limits.h:122:61: error: no include path in which to search for limits.h

In file included from include/openssl/types.h:32,

                 from apps\include/app_libctx.h:13,

                 from apps\lib\app_libctx.c:9:

include/openssl/e_os2.h:256:22: error: stdint.h: No such file or directory

In file included from include/openssl/types.h:32,

                 from apps\include/app_libctx.h:13,

                 from apps\lib\app_libctx.c:9:

include/openssl/e_os2.h:265: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ossl_intmax_t'

include/openssl/e_os2.h:266: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ossl_uintmax_t'

In file included from include/internal/e_os.h:17,

                 from apps\include/apps.h:13,

                 from apps\lib\app_libctx.c:10:

include/openssl/crypto.h:25:21: error: stdlib.h: No such file or directory

include/openssl/crypto.h:26:19: error: time.h: No such file or directory

include/openssl/crypto.h:31:21: error: stdio.h: No such file or directory

In file included from include/internal/e_os.h:17,

                 from apps\include/apps.h:13,

                 from apps\lib\app_libctx.c:10:

include/openssl/crypto.h:88: error: expected ')' before '*' token

include/openssl/crypto.h:90: error: expected ')' before '*' token

include/openssl/crypto.h:434: warning: type defaults to 'int' in declaration of 'time_t'

include/openssl/crypto.h:434: error: expected ';', ',' or ')' before '*' token

include/openssl/crypto.h:486: error: expected ')' before 'opts'

include/openssl/crypto.h:556: error: expected ')' before 'millis'

In file included from apps\include/apps.h:13,

                 from apps\lib\app_libctx.c:10:

Neil Horman

unread,
Jul 24, 2024, 1:34:23 PM7/24/24
to Damodhar Boddukuri, openss...@openssl.org
At this point you really are going to need to dig into the VxWorks documentation to figure out what compiler flags and include files you need to set to get this all to work.  It may require some openssl code changes to use your compiler/build environment

Damodhar Boddukuri

unread,
Jul 26, 2024, 8:02:31 AM7/26/24
to Neil Horman, openss...@openssl.org
 

Hi,

 

Thanks for your support.

 

We are planning to use ECDH Algorithm(Group 19) with a minimal footprint in an Embedded System Product for the shared secret key generation.

 

I have few questions in my mind:

  1. Is it recommended to use ECDH Algorithm (Group 19) for an embedded product ? does ECDH (Group 19) requires any hardware support(i.e. engine libraries/files)? We don’t have hardware/engine support in the target.
  2. If ECDH Algorithm (Group 19) recommended, How will be the performance?
  3. If ECDH Algorithm (Group 19) not recommended, What would be the simple & secure DH or ECDH algorithm for shared secret key generation?

 

When I go through the code, I could see many conditional compilation macros. What are the conditional macros I need to enable for minimal footprint? What are the source file I need to build?

 

OPENSSL_NO_ENGINE

OPENSSL_NO_AUTOLOAD_CONFIG

OPENSSL_NO_RDRAND

OPENSSL_NO_PADLOCKENG

OPENSSL_NO_AFALGENG

OPENSSL_NO_STATIC_ENGINE

Damodhar Boddukuri

unread,
Jul 29, 2024, 11:30:24 AM7/29/24
to Neil Horman, openss...@openssl.org

Hi,

 

Thanks for your support.

 

I am porting ECDH Algorithm(Group 19) in to our target. Following are the API calls:

 

  1. ecdh_group = EC_GROUP_new_by_curve_name(NID_X9_62_prime256v1); // NID_X9_62_prime256v1 or  NID_secp256k1

 

  1. ecdh_keys = EC_KEY_new();

 

  1. ret = EC_KEY_set_group(ecdh_keys, ecdh_group);

 

  1. ret = EC_KEY_generate_key(ecdh_keys);

 

               // Get Private and Public Keys

  1. const BIGNUM* pri_key = EC_KEY_get0_private_key(ecdh_keys);

              const EC_POINT* pub_key = EC_KEY_get0_public_key(ecdh_keys);

 

  1. SharedSecretKey_Len = ECDH_compute_key(SharedSecretKey, (EC_GROUP_get_degree(ecdh_group) + 7) / 8, rtvPub_key, ecdh_keys, NULL);

 

At 4 (I.e. EC_KEY_generate_key), Its invoking API’s like evp_rand_instantiate_locked(), evp_rand_generate_locked(), evp_rand_resend_locked()…etc

 

These API’s returning negative response. They are pointing to function pointers. How to find them? Do I need to implement Mutex lock here?

 

 

Thanks & Regards,

Damodhar.

+91-7702191212

 


General

 

General

Reply all
Reply to author
Forward
0 new messages