From 4b108054e78b7c0c0734d2694187b1a9671e766f Mon Sep 17 00:00:00 2001 From: Wonyoung Choi Date: Wed, 3 Jun 2020 15:41:52 +0900 Subject: [PATCH] Add StructValidator Change-Id: Ib7bd0b9f609af564a9cd68b90e7825fde112426c --- .../Tizen.GBS.ImportAfter.targets | 11 --- Tools/dotnet-wrapper.sh | 10 -- Tools/timeout.sh | 58 ----------- packaging/dotnet-build-tools.spec | 30 +++--- .../StructValidator/StructValidator.deps.json | 23 +++++ tools/StructValidator/StructValidator.dll | Bin 0 -> 12288 bytes tools/StructValidator/StructValidator.pdb | Bin 0 -> 3984 bytes .../StructValidator.runtimeconfig.json | 9 ++ tools/StructValidator/native/Makefile | 33 +++++++ tools/StructValidator/native/common.h | 34 +++++++ tools/StructValidator/native/main.c | 61 ++++++++++++ {Tools => tools}/dotnet-build.sh | 6 +- tools/dotnet-validate-struct.sh | 4 + tools/dotnet-wrapper.sh | 16 +++ {Tools => tools}/dummypack.csproj | 0 {Tools => tools}/retry.sh | 0 tools/timeout.sh | 91 ++++++++++++++++++ update-tools.sh | 14 +++ 18 files changed, 303 insertions(+), 97 deletions(-) delete mode 100644 Tizen.GBS.BuildTasks/Tizen.GBS.ImportAfter.targets delete mode 100644 Tools/dotnet-wrapper.sh delete mode 100755 Tools/timeout.sh create mode 100644 tools/StructValidator/StructValidator.deps.json create mode 100644 tools/StructValidator/StructValidator.dll create mode 100644 tools/StructValidator/StructValidator.pdb create mode 100644 tools/StructValidator/StructValidator.runtimeconfig.json create mode 100644 tools/StructValidator/native/Makefile create mode 100644 tools/StructValidator/native/common.h create mode 100644 tools/StructValidator/native/main.c rename {Tools => tools}/dotnet-build.sh (94%) create mode 100755 tools/dotnet-validate-struct.sh create mode 100755 tools/dotnet-wrapper.sh rename {Tools => tools}/dummypack.csproj (100%) rename {Tools => tools}/retry.sh (100%) create mode 100755 tools/timeout.sh create mode 100755 update-tools.sh diff --git a/Tizen.GBS.BuildTasks/Tizen.GBS.ImportAfter.targets b/Tizen.GBS.BuildTasks/Tizen.GBS.ImportAfter.targets deleted file mode 100644 index d8aab8d8..00000000 --- a/Tizen.GBS.BuildTasks/Tizen.GBS.ImportAfter.targets +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - $(NoWarn);1591 - $(OutputPath)$(AssemblyName).xml - - - - diff --git a/Tools/dotnet-wrapper.sh b/Tools/dotnet-wrapper.sh deleted file mode 100644 index 65210196..00000000 --- a/Tools/dotnet-wrapper.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -DOTNET_CLI_PATH=/usr/share/dotnet-build-tools/cli/dotnet - -export DOTNET_CLI_TELEMETRY_OPTOUT=1 -export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true -export DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX=2 -export MSBUILDDISABLENODEREUSE=true - -$DOTNET_CLI_PATH "$@" /nodeReuse:false /p:UseRazorBuildServer=false /p:UseSharedCompilation=false diff --git a/Tools/timeout.sh b/Tools/timeout.sh deleted file mode 100755 index c7273d02..00000000 --- a/Tools/timeout.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh - -# Execute a command with a timeout - -# License: LGPLv2 -# Author: -# http://www.pixelbeat.org/ -# Notes: -# Note there is a timeout command packaged with coreutils since v7.0 -# If the timeout occurs the exit status is 124. -# There is an asynchronous (and buggy) equivalent of this -# script packaged with bash (under /usr/share/doc/ in my distro), -# which I only noticed after writing this. -# I noticed later again that there is a C equivalent of this packaged -# with satan by Wietse Venema, and copied to forensics by Dan Farmer. -# Changes: -# V1.0, Nov 3 2006, Initial release -# V1.1, Nov 20 2007, Brad Greenlee -# Make more portable by using the 'CHLD' -# signal spec rather than 17. -# V1.3, Oct 29 2009, Ján Sáreník -# Even though this runs under dash,ksh etc. -# it doesn't actually timeout. So enforce bash for now. -# Also change exit on timeout from 128 to 124 -# to match coreutils. -# V2.0, Oct 30 2009, Ján Sáreník -# Rewritten to cover compatibility with other -# Bourne shell implementations (pdksh, dash) - -if [ "$#" -lt "2" ]; then - echo "Usage: `basename $0` timeout_in_seconds command" >&2 - echo "Example: `basename $0` 2 sleep 3 || echo timeout" >&2 - exit 1 -fi - -cleanup() -{ - trap - ALRM #reset handler to default - kill -ALRM $a 2>/dev/null #stop timer subshell if running - kill $! 2>/dev/null && #kill last job - exit 124 #exit with 124 if it was running -} - -watchit() -{ - trap "cleanup" ALRM - sleep $1& wait - kill -ALRM $$ -} - -watchit $1& a=$! #start the timeout -shift #first param was timeout for sleep -trap "cleanup" ALRM INT #cleanup after timeout -"$@"& wait $!; RET=$? #start the job wait for it and save its return value -kill -ALRM $a #send ALRM signal to watchit -wait $a #wait for watchit to finish cleanup -exit $RET #return the value - diff --git a/packaging/dotnet-build-tools.spec b/packaging/dotnet-build-tools.spec index d46b34f1..4d553cec 100644 --- a/packaging/dotnet-build-tools.spec +++ b/packaging/dotnet-build-tools.spec @@ -20,12 +20,14 @@ BuildRequires: patchelf Requires: corefx-managed-ref Requires: libicu Requires: openssl1.1 +Requires: make +Requires: dotnet-launcher-gbs-support %description Provides dotnet-sdk for GBS environment %define TOOLS_PATH /usr/share/dotnet-build-tools -%define CLI_PATH %{TOOLS_PATH}/cli +%define SDK_PATH %{TOOLS_PATH}/sdk %prep %setup -q @@ -35,16 +37,16 @@ tar xvfz %{SOURCE21} -C dotnet tar xvfz %{SOURCE22} -C dotnet/deps %build -# Prepare dotnet-cli +# Prepare dotnet-sdk %ifnarch x86_64 for file in $( find ./dotnet -name "dotnet" -type f ) do - patchelf --set-interpreter %{CLI_PATH}/deps/ld-linux-x86-64.so.2 ${file} - patchelf --set-rpath %{CLI_PATH}/deps/ ${file} + patchelf --set-interpreter %{SDK_PATH}/deps/ld-linux-x86-64.so.2 ${file} + patchelf --set-rpath %{SDK_PATH}/deps/ ${file} done for file in $( find ./dotnet -type f \( -name "*.so" -or -name "*.so.*" \) -not -name "*.dbg" -not -name "ld-*.so*" ) do - patchelf --set-rpath %{CLI_PATH}/deps/ ${file} + patchelf --set-rpath %{SDK_PATH}/deps/ ${file} done %endif @@ -53,22 +55,20 @@ cp -f overrides/Microsoft.Build.Tasks.Core.dll dotnet/sdk/*/Microsoft.Build.Task %install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{SDK_PATH} + # RPM Macros install -D -p -m 0644 %{S:1} %{buildroot}%{_sysconfdir}/rpm/macros.dotnet-build-tools +# .NETCore SDK +cp -fr ./dotnet/* %{buildroot}%{SDK_PATH} + # BuildTools -mkdir -p %{buildroot}%{_bindir} -mkdir -p %{buildroot}%{TOOLS_PATH} -install -p -m 755 Tools/* %{buildroot}%{TOOLS_PATH} +cp -fr ./tools/* %{buildroot}%{TOOLS_PATH} ln -s %{TOOLS_PATH}/dotnet-build.sh %{buildroot}%{_bindir}/dotnet-build - -# .NETCore SDK -mkdir -p %{buildroot}%{CLI_PATH} -cp -fr ./dotnet/* %{buildroot}%{CLI_PATH} ln -s %{TOOLS_PATH}/dotnet-wrapper.sh %{buildroot}%{_bindir}/dotnet - -# Tizen.GBS.BuildTasks -install -p -m 644 Tizen.GBS.BuildTasks/Tizen.GBS.ImportAfter.targets %{buildroot}%{CLI_PATH}/sdk/*/Current/Microsoft.Common.targets/ImportAfter +ln -s %{TOOLS_PATH}/dotnet-validate-struct.sh %{buildroot}%{_bindir}/dotnet-validate-struct %files %config(noreplace) %{_sysconfdir}/rpm/macros.dotnet-build-tools diff --git a/tools/StructValidator/StructValidator.deps.json b/tools/StructValidator/StructValidator.deps.json new file mode 100644 index 00000000..3219b5fb --- /dev/null +++ b/tools/StructValidator/StructValidator.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v3.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v3.0": { + "StructValidator/1.0.0": { + "runtime": { + "StructValidator.dll": {} + } + } + } + }, + "libraries": { + "StructValidator/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/tools/StructValidator/StructValidator.dll b/tools/StructValidator/StructValidator.dll new file mode 100644 index 0000000000000000000000000000000000000000..a9d7b786597e44397b4b456ac985e69ea4ad913f GIT binary patch literal 12288 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 +#include + +typedef struct __provider_list_node +{ + struct __provider_list_node *next; + int (*func)(void); +} _provider_list_node; + +_provider_list_node *_provider_list_head = NULL; + +void _add_function_to_provider_list(int (*f)(void)) +{ + _provider_list_node *node = (_provider_list_node *)malloc(sizeof(_provider_list_node)); + node->func = f; + node->next = _provider_list_head; + _provider_list_head = node; +} + +int _check_struct(const char *name, int managed, int unmanaged) +{ + if (managed != unmanaged) + { + printf("* %s size is mismatch. managed(%d) != unmanaged(%d)\n", name, managed, unmanaged); + return 0; + } + return 1; +} + +int main(int argc, char **argv) +{ + int valid = 1; + _provider_list_node *node = _provider_list_head; + while (node != NULL) + { + valid = valid & node->func(); + node = node->next; + } + if (!valid) + { + printf("***** INVALID STRUCT SIZE *****\n"); + return 1; + } + return 0; +} diff --git a/Tools/dotnet-build.sh b/tools/dotnet-build.sh similarity index 94% rename from Tools/dotnet-build.sh rename to tools/dotnet-build.sh index ef9b0208..28c5b850 100755 --- a/Tools/dotnet-build.sh +++ b/tools/dotnet-build.sh @@ -23,7 +23,7 @@ exit_on_error() { run_dotnet() { echo "+ dotnet $@" - $RETRY_CMD $TIMEOUT_CMD 600 dotnet $@ /nologo + $RETRY_CMD $TIMEOUT_CMD -t 600 dotnet $@ /nologo exit_on_error $? } @@ -37,7 +37,7 @@ cmd_build() { cmd_restore # restore first local OPTS="" [ -n "$CONFIGURATION" ] && OPTS="$OPTS -c $CONFIGURATION" - run_dotnet build --no-restore $PROJECT $OPTS $@ /p:UsingRPMMacro=true + run_dotnet build --no-restore $PROJECT $OPTS $@ /p:GenerateDocumentationFile=True } cmd_pack() { @@ -52,7 +52,7 @@ cmd_pack() { PROJECT=$TMPDIR/dummypack.csproj run_dotnet restore $PROJECT -s /nuget/ fi - run_dotnet pack --no-build --no-restore $PRE_OPTS $PROJECT $OPTS $@ /p:UsingRPMMacro=true + run_dotnet pack --no-build --no-restore $PRE_OPTS $PROJECT $OPTS $@ } cmd_install() { diff --git a/tools/dotnet-validate-struct.sh b/tools/dotnet-validate-struct.sh new file mode 100755 index 00000000..6a80a15f --- /dev/null +++ b/tools/dotnet-validate-struct.sh @@ -0,0 +1,4 @@ +#!/bin/bash -e + +SV_ASSEMBLY=/usr/share/dotnet-build-tools/StructValidator/StructValidator.dll +dotnet-corerun $SV_ASSEMBLY $1 diff --git a/tools/dotnet-wrapper.sh b/tools/dotnet-wrapper.sh new file mode 100755 index 00000000..701cf074 --- /dev/null +++ b/tools/dotnet-wrapper.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +DOTNET_CLI_PATH=/usr/share/dotnet-build-tools/sdk/dotnet + +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true +export DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX=2 +export MSBUILDDISABLENODEREUSE=true + +if [ "$1" == "msbuild" -o "$1" == "build" -o "$1" == "restore" ]; then + echo $DOTNET_CLI_PATH "$@" /nodeReuse:false /p:UseRazorBuildServer=false /p:UseSharedCompilation=false + $DOTNET_CLI_PATH "$@" /nodeReuse:false /p:UseRazorBuildServer=false /p:UseSharedCompilation=false +else + echo $DOTNET_CLI_PATH "$@" + $DOTNET_CLI_PATH "$@" +fi diff --git a/Tools/dummypack.csproj b/tools/dummypack.csproj similarity index 100% rename from Tools/dummypack.csproj rename to tools/dummypack.csproj diff --git a/Tools/retry.sh b/tools/retry.sh similarity index 100% rename from Tools/retry.sh rename to tools/retry.sh diff --git a/tools/timeout.sh b/tools/timeout.sh new file mode 100755 index 00000000..5c19d2ec --- /dev/null +++ b/tools/timeout.sh @@ -0,0 +1,91 @@ +#!/bin/bash +# +# The Bash shell script executes a command with a time-out. +# Upon time-out expiration SIGTERM (15) is sent to the process. If the signal +# is blocked, then the subsequent SIGKILL (9) terminates it. +# +# Based on the Bash documentation example. + +# Hello Chet, +# please find attached a "little easier" :-) to comprehend +# time-out example. If you find it suitable, feel free to include +# anywhere: the very same logic as in the original examples/scripts, a +# little more transparent implementation to my taste. +# +# Dmitry V Golovashkin + +scriptName="${0##*/}" + +declare -i DEFAULT_TIMEOUT=9 +declare -i DEFAULT_INTERVAL=1 +declare -i DEFAULT_DELAY=1 + +# Timeout. +declare -i timeout=DEFAULT_TIMEOUT +# Interval between checks if the process is still alive. +declare -i interval=DEFAULT_INTERVAL +# Delay between posting the SIGTERM signal and destroying the process by SIGKILL. +declare -i delay=DEFAULT_DELAY + +function printUsage() { + cat < 0)); do + sleep $interval + kill -0 $$ || exit 0 + ((t -= interval)) + done + + # Be nice, post SIGTERM first. + # The 'exit 0' below will be executed if any preceeding command fails. + kill -s SIGTERM $$ && kill -0 $$ || exit 0 + sleep $delay + kill -s SIGKILL $$ +) 2> /dev/null & + +exec "$@" diff --git a/update-tools.sh b/update-tools.sh new file mode 100755 index 00000000..5f29e71c --- /dev/null +++ b/update-tools.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCRIPT_FILE=$(readlink -f $0) +SCRIPT_DIR=$(dirname $SCRIPT_FILE) + +SV_GITDIR="$SCRIPT_DIR/.repos/StructValidator" +SV_BINDIR="$SCRIPT_DIR/tools/StructValidator" + +rm -fr $SV_GITDIR +git clone https://github.sec.samsung.net/dotnet/StructValidator $SV_GITDIR +dotnet publish $SV_GITDIR -o $SV_BINDIR + +rm -fr $SV_GITDIR + -- 2.34.1