Update arcade
This commit is contained in:
parent
9bdfb5afac
commit
56344d0cf0
33 changed files with 1224 additions and 44 deletions
41
eng/common/cross/android/arm/toolchain.cmake
Normal file
41
eng/common/cross/android/arm/toolchain.cmake
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
set(CROSS_NDK_TOOLCHAIN $ENV{ROOTFS_DIR}/../)
|
||||||
|
set(CROSS_ROOTFS ${CROSS_NDK_TOOLCHAIN}/sysroot)
|
||||||
|
set(CLR_CMAKE_PLATFORM_ANDROID "Android")
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||||
|
|
||||||
|
## Specify the toolchain
|
||||||
|
set(TOOLCHAIN "arm-linux-androideabi")
|
||||||
|
set(CMAKE_PREFIX_PATH ${CROSS_NDK_TOOLCHAIN})
|
||||||
|
set(TOOLCHAIN_PREFIX ${TOOLCHAIN}-)
|
||||||
|
|
||||||
|
find_program(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||||
|
find_program(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}clang++)
|
||||||
|
find_program(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||||
|
find_program(CMAKE_AR ${TOOLCHAIN_PREFIX}ar)
|
||||||
|
find_program(CMAKE_LD ${TOOLCHAIN_PREFIX}ar)
|
||||||
|
find_program(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy)
|
||||||
|
find_program(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump)
|
||||||
|
|
||||||
|
add_compile_options(--sysroot=${CROSS_ROOTFS})
|
||||||
|
add_compile_options(-fPIE)
|
||||||
|
add_compile_options(-mfloat-abi=soft)
|
||||||
|
include_directories(SYSTEM ${CROSS_NDK_TOOLCHAIN}/include/c++/4.9.x/)
|
||||||
|
include_directories(SYSTEM ${CROSS_NDK_TOOLCHAIN}/include/c++/4.9.x/arm-linux-androideabi/)
|
||||||
|
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B ${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}")
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}")
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -fPIE -pie")
|
||||||
|
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
42
eng/common/cross/android/arm64/toolchain.cmake
Normal file
42
eng/common/cross/android/arm64/toolchain.cmake
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
set(CROSS_NDK_TOOLCHAIN $ENV{ROOTFS_DIR}/../)
|
||||||
|
set(CROSS_ROOTFS ${CROSS_NDK_TOOLCHAIN}/sysroot)
|
||||||
|
set(CLR_CMAKE_PLATFORM_ANDROID "Android")
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||||
|
|
||||||
|
## Specify the toolchain
|
||||||
|
set(TOOLCHAIN "aarch64-linux-android")
|
||||||
|
set(CMAKE_PREFIX_PATH ${CROSS_NDK_TOOLCHAIN})
|
||||||
|
set(TOOLCHAIN_PREFIX ${TOOLCHAIN}-)
|
||||||
|
|
||||||
|
find_program(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||||
|
find_program(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}clang++)
|
||||||
|
find_program(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||||
|
find_program(CMAKE_AR ${TOOLCHAIN_PREFIX}ar)
|
||||||
|
find_program(CMAKE_LD ${TOOLCHAIN_PREFIX}ar)
|
||||||
|
find_program(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy)
|
||||||
|
find_program(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump)
|
||||||
|
|
||||||
|
add_compile_options(--sysroot=${CROSS_ROOTFS})
|
||||||
|
add_compile_options(-fPIE)
|
||||||
|
|
||||||
|
## Needed for Android or bionic specific conditionals
|
||||||
|
add_compile_options(-D__ANDROID__)
|
||||||
|
add_compile_options(-D__BIONIC__)
|
||||||
|
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B ${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}")
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}")
|
||||||
|
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -fPIE -pie")
|
||||||
|
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||||
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
|
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
11
eng/common/cross/arm/sources.list.bionic
Normal file
11
eng/common/cross/arm/sources.list.bionic
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
|
3
eng/common/cross/arm/sources.list.jessie
Normal file
3
eng/common/cross/arm/sources.list.jessie
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Debian (sid) # UNSTABLE
|
||||||
|
deb http://ftp.debian.org/debian/ sid main contrib non-free
|
||||||
|
deb-src http://ftp.debian.org/debian/ sid main contrib non-free
|
11
eng/common/cross/arm/sources.list.trusty
Normal file
11
eng/common/cross/arm/sources.list.trusty
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
|
11
eng/common/cross/arm/sources.list.vivid
Normal file
11
eng/common/cross/arm/sources.list.vivid
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid-security main restricted universe multiverse
|
11
eng/common/cross/arm/sources.list.wily
Normal file
11
eng/common/cross/arm/sources.list.wily
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily-security main restricted universe multiverse
|
11
eng/common/cross/arm/sources.list.xenial
Normal file
11
eng/common/cross/arm/sources.list.xenial
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
11
eng/common/cross/arm/sources.list.zesty
Normal file
11
eng/common/cross/arm/sources.list.zesty
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty-security main restricted universe multiverse
|
71
eng/common/cross/arm/trusty-lttng-2.4.patch
Normal file
71
eng/common/cross/arm/trusty-lttng-2.4.patch
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
From e72c9d7ead60e3317bd6d1fade995c07021c947b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||||
|
Date: Thu, 7 May 2015 13:25:04 -0400
|
||||||
|
Subject: [PATCH] Fix: building probe providers with C++ compiler
|
||||||
|
|
||||||
|
Robert Daniels wrote:
|
||||||
|
> > I'm attempting to use lttng userspace tracing with a C++ application
|
||||||
|
> > on an ARM platform. I'm using GCC 4.8.4 on Linux 3.14 with the 2.6
|
||||||
|
> > release of lttng. I've compiled lttng-modules, lttng-ust, and
|
||||||
|
> > lttng-tools and have been able to get a simple test working with C
|
||||||
|
> > code. When I attempt to run the hello.cxx test on my target it will
|
||||||
|
> > segfault.
|
||||||
|
>
|
||||||
|
>
|
||||||
|
> I spent a little time digging into this issue and finally discovered the
|
||||||
|
> cause of my segfault with ARM C++ tracepoints.
|
||||||
|
>
|
||||||
|
> There is a struct called 'lttng_event' in ust-events.h which contains an
|
||||||
|
> empty union 'u'. This was the cause of my issue. Under C, this empty union
|
||||||
|
> compiles to a zero byte member while under C++ it compiles to a one byte
|
||||||
|
> member, and in my case was four-byte aligned which caused my C++ code to
|
||||||
|
> have the 'cds_list_head node' offset incorrectly by four bytes. This lead
|
||||||
|
> to an incorrect linked list structure which caused my issue.
|
||||||
|
>
|
||||||
|
> Since this union is empty, I simply removed it from the struct and everything
|
||||||
|
> worked correctly.
|
||||||
|
>
|
||||||
|
> I don't know the history or purpose behind this empty union so I'd like to
|
||||||
|
> know if this is a safe fix. If it is I can submit a patch with the union
|
||||||
|
> removed.
|
||||||
|
|
||||||
|
That's a very nice catch!
|
||||||
|
|
||||||
|
We do not support building tracepoint probe provider with
|
||||||
|
g++ yet, as stated in lttng-ust(3):
|
||||||
|
|
||||||
|
"- Note for C++ support: although an application instrumented with
|
||||||
|
tracepoints can be compiled with g++, tracepoint probes should be
|
||||||
|
compiled with gcc (only tested with gcc so far)."
|
||||||
|
|
||||||
|
However, if it works fine with this fix, then I'm tempted to take it,
|
||||||
|
especially because removing the empty union does not appear to affect
|
||||||
|
the layout of struct lttng_event as seen from liblttng-ust, which must
|
||||||
|
be compiled with a C compiler, and from probe providers compiled with
|
||||||
|
a C compiler. So all we are changing is the layout of a probe provider
|
||||||
|
compiled with a C++ compiler, which is anyway buggy at the moment,
|
||||||
|
because it is not compatible with the layout expected by liblttng-ust
|
||||||
|
compiled with a C compiler.
|
||||||
|
|
||||||
|
Reported-by: Robert Daniels <robert.daniels@vantagecontrols.com>
|
||||||
|
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||||
|
---
|
||||||
|
include/lttng/ust-events.h | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/usr/include/lttng/ust-events.h b/usr/include/lttng/ust-events.h
|
||||||
|
index 328a875..3d7a274 100644
|
||||||
|
--- a/usr/include/lttng/ust-events.h
|
||||||
|
+++ b/usr/include/lttng/ust-events.h
|
||||||
|
@@ -407,8 +407,6 @@ struct lttng_event {
|
||||||
|
void *_deprecated1;
|
||||||
|
struct lttng_ctx *ctx;
|
||||||
|
enum lttng_ust_instrumentation instrumentation;
|
||||||
|
- union {
|
||||||
|
- } u;
|
||||||
|
struct cds_list_head node; /* Event list in session */
|
||||||
|
struct cds_list_head _deprecated2;
|
||||||
|
void *_deprecated3;
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
97
eng/common/cross/arm/trusty.patch
Normal file
97
eng/common/cross/arm/trusty.patch
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
diff -u -r a/usr/include/urcu/uatomic/generic.h b/usr/include/urcu/uatomic/generic.h
|
||||||
|
--- a/usr/include/urcu/uatomic/generic.h 2014-03-28 06:04:42.000000000 +0900
|
||||||
|
+++ b/usr/include/urcu/uatomic/generic.h 2017-02-13 10:35:21.189927116 +0900
|
||||||
|
@@ -65,17 +65,17 @@
|
||||||
|
switch (len) {
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_BYTE
|
||||||
|
case 1:
|
||||||
|
- return __sync_val_compare_and_swap_1(addr, old, _new);
|
||||||
|
+ return __sync_val_compare_and_swap_1((uint8_t *) addr, old, _new);
|
||||||
|
#endif
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_SHORT
|
||||||
|
case 2:
|
||||||
|
- return __sync_val_compare_and_swap_2(addr, old, _new);
|
||||||
|
+ return __sync_val_compare_and_swap_2((uint16_t *) addr, old, _new);
|
||||||
|
#endif
|
||||||
|
case 4:
|
||||||
|
- return __sync_val_compare_and_swap_4(addr, old, _new);
|
||||||
|
+ return __sync_val_compare_and_swap_4((uint32_t *) addr, old, _new);
|
||||||
|
#if (CAA_BITS_PER_LONG == 64)
|
||||||
|
case 8:
|
||||||
|
- return __sync_val_compare_and_swap_8(addr, old, _new);
|
||||||
|
+ return __sync_val_compare_and_swap_8((uint64_t *) addr, old, _new);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
_uatomic_link_error();
|
||||||
|
@@ -100,20 +100,20 @@
|
||||||
|
switch (len) {
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_BYTE
|
||||||
|
case 1:
|
||||||
|
- __sync_and_and_fetch_1(addr, val);
|
||||||
|
+ __sync_and_and_fetch_1((uint8_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_SHORT
|
||||||
|
case 2:
|
||||||
|
- __sync_and_and_fetch_2(addr, val);
|
||||||
|
+ __sync_and_and_fetch_2((uint16_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
case 4:
|
||||||
|
- __sync_and_and_fetch_4(addr, val);
|
||||||
|
+ __sync_and_and_fetch_4((uint32_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#if (CAA_BITS_PER_LONG == 64)
|
||||||
|
case 8:
|
||||||
|
- __sync_and_and_fetch_8(addr, val);
|
||||||
|
+ __sync_and_and_fetch_8((uint64_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -139,20 +139,20 @@
|
||||||
|
switch (len) {
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_BYTE
|
||||||
|
case 1:
|
||||||
|
- __sync_or_and_fetch_1(addr, val);
|
||||||
|
+ __sync_or_and_fetch_1((uint8_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_SHORT
|
||||||
|
case 2:
|
||||||
|
- __sync_or_and_fetch_2(addr, val);
|
||||||
|
+ __sync_or_and_fetch_2((uint16_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
case 4:
|
||||||
|
- __sync_or_and_fetch_4(addr, val);
|
||||||
|
+ __sync_or_and_fetch_4((uint32_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#if (CAA_BITS_PER_LONG == 64)
|
||||||
|
case 8:
|
||||||
|
- __sync_or_and_fetch_8(addr, val);
|
||||||
|
+ __sync_or_and_fetch_8((uint64_t *) addr, val);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@@ -180,17 +180,17 @@
|
||||||
|
switch (len) {
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_BYTE
|
||||||
|
case 1:
|
||||||
|
- return __sync_add_and_fetch_1(addr, val);
|
||||||
|
+ return __sync_add_and_fetch_1((uint8_t *) addr, val);
|
||||||
|
#endif
|
||||||
|
#ifdef UATOMIC_HAS_ATOMIC_SHORT
|
||||||
|
case 2:
|
||||||
|
- return __sync_add_and_fetch_2(addr, val);
|
||||||
|
+ return __sync_add_and_fetch_2((uint16_t *) addr, val);
|
||||||
|
#endif
|
||||||
|
case 4:
|
||||||
|
- return __sync_add_and_fetch_4(addr, val);
|
||||||
|
+ return __sync_add_and_fetch_4((uint32_t *) addr, val);
|
||||||
|
#if (CAA_BITS_PER_LONG == 64)
|
||||||
|
case 8:
|
||||||
|
- return __sync_add_and_fetch_8(addr, val);
|
||||||
|
+ return __sync_add_and_fetch_8((uint64_t *) addr, val);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
_uatomic_link_error();
|
11
eng/common/cross/arm64/sources.list.bionic
Normal file
11
eng/common/cross/arm64/sources.list.bionic
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
|
11
eng/common/cross/arm64/sources.list.trusty
Normal file
11
eng/common/cross/arm64/sources.list.trusty
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
|
11
eng/common/cross/arm64/sources.list.vivid
Normal file
11
eng/common/cross/arm64/sources.list.vivid
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ vivid-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ vivid-security main restricted universe multiverse
|
11
eng/common/cross/arm64/sources.list.wily
Normal file
11
eng/common/cross/arm64/sources.list.wily
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ wily-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ wily-security main restricted universe multiverse
|
11
eng/common/cross/arm64/sources.list.xenial
Normal file
11
eng/common/cross/arm64/sources.list.xenial
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
|
11
eng/common/cross/arm64/sources.list.zesty
Normal file
11
eng/common/cross/arm64/sources.list.zesty
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty-updates main restricted universe
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty-updates main restricted universe
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty-backports main restricted
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty-backports main restricted
|
||||||
|
|
||||||
|
deb http://ports.ubuntu.com/ubuntu-ports/ zesty-security main restricted universe multiverse
|
||||||
|
deb-src http://ports.ubuntu.com/ubuntu-ports/ zesty-security main restricted universe multiverse
|
3
eng/common/cross/armel/sources.list.jessie
Normal file
3
eng/common/cross/armel/sources.list.jessie
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Debian (jessie) # Stable
|
||||||
|
deb http://ftp.debian.org/debian/ jessie main contrib non-free
|
||||||
|
deb-src http://ftp.debian.org/debian/ jessie main contrib non-free
|
44
eng/common/cross/armel/tizen-build-rootfs.sh
Normal file
44
eng/common/cross/armel/tizen-build-rootfs.sh
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
__ARM_SOFTFP_CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||||
|
__TIZEN_CROSSDIR="$__ARM_SOFTFP_CrossDir/tizen"
|
||||||
|
|
||||||
|
if [[ -z "$ROOTFS_DIR" ]]; then
|
||||||
|
echo "ROOTFS_DIR is not defined."
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clean-up (TODO-Cleanup: We may already delete $ROOTFS_DIR at ./cross/build-rootfs.sh.)
|
||||||
|
# hk0110
|
||||||
|
if [ -d "$ROOTFS_DIR" ]; then
|
||||||
|
umount $ROOTFS_DIR/*
|
||||||
|
rm -rf $ROOTFS_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
TIZEN_TMP_DIR=$ROOTFS_DIR/tizen_tmp
|
||||||
|
mkdir -p $TIZEN_TMP_DIR
|
||||||
|
|
||||||
|
# Download files
|
||||||
|
echo ">>Start downloading files"
|
||||||
|
VERBOSE=1 $__ARM_SOFTFP_CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR
|
||||||
|
echo "<<Finish downloading files"
|
||||||
|
|
||||||
|
echo ">>Start constructing Tizen rootfs"
|
||||||
|
TIZEN_RPM_FILES=`ls $TIZEN_TMP_DIR/*.rpm`
|
||||||
|
cd $ROOTFS_DIR
|
||||||
|
for f in $TIZEN_RPM_FILES; do
|
||||||
|
rpm2cpio $f | cpio -idm --quiet
|
||||||
|
done
|
||||||
|
echo "<<Finish constructing Tizen rootfs"
|
||||||
|
|
||||||
|
# Cleanup tmp
|
||||||
|
rm -rf $TIZEN_TMP_DIR
|
||||||
|
|
||||||
|
# Configure Tizen rootfs
|
||||||
|
echo ">>Start configuring Tizen rootfs"
|
||||||
|
rm ./usr/lib/libunwind.so
|
||||||
|
ln -s libunwind.so.8 ./usr/lib/libunwind.so
|
||||||
|
ln -sfn asm-arm ./usr/include/asm
|
||||||
|
patch -p1 < $__TIZEN_CROSSDIR/tizen.patch
|
||||||
|
echo "<<Finish configuring Tizen rootfs"
|
171
eng/common/cross/armel/tizen-fetch.sh
Normal file
171
eng/common/cross/armel/tizen-fetch.sh
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ -z "${VERBOSE// }" ]] || [ "$VERBOSE" -ne "$VERBOSE" ] 2>/dev/null; then
|
||||||
|
VERBOSE=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
Log()
|
||||||
|
{
|
||||||
|
if [ $VERBOSE -ge $1 ]; then
|
||||||
|
echo ${@:2}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
Inform()
|
||||||
|
{
|
||||||
|
Log 1 -e "\x1B[0;34m$@\x1B[m"
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug()
|
||||||
|
{
|
||||||
|
Log 2 -e "\x1B[0;32m$@\x1B[m"
|
||||||
|
}
|
||||||
|
|
||||||
|
Error()
|
||||||
|
{
|
||||||
|
>&2 Log 0 -e "\x1B[0;31m$@\x1B[m"
|
||||||
|
}
|
||||||
|
|
||||||
|
Fetch()
|
||||||
|
{
|
||||||
|
URL=$1
|
||||||
|
FILE=$2
|
||||||
|
PROGRESS=$3
|
||||||
|
if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then
|
||||||
|
CURL_OPT="--progress-bar"
|
||||||
|
else
|
||||||
|
CURL_OPT="--silent"
|
||||||
|
fi
|
||||||
|
curl $CURL_OPT $URL > $FILE
|
||||||
|
}
|
||||||
|
|
||||||
|
hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; }
|
||||||
|
hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; }
|
||||||
|
hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; }
|
||||||
|
|
||||||
|
TMPDIR=$1
|
||||||
|
if [ ! -d $TMPDIR ]; then
|
||||||
|
TMPDIR=./tizen_tmp
|
||||||
|
Debug "Create temporary directory : $TMPDIR"
|
||||||
|
mkdir -p $TMPDIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
TIZEN_URL=http://download.tizen.org/releases/milestone/tizen
|
||||||
|
BUILD_XML=build.xml
|
||||||
|
REPOMD_XML=repomd.xml
|
||||||
|
PRIMARY_XML=primary.xml
|
||||||
|
TARGET_URL="http://__not_initialized"
|
||||||
|
|
||||||
|
Xpath_get()
|
||||||
|
{
|
||||||
|
XPATH_RESULT=''
|
||||||
|
XPATH=$1
|
||||||
|
XML_FILE=$2
|
||||||
|
RESULT=$(xmllint --xpath $XPATH $XML_FILE)
|
||||||
|
if [[ -z ${RESULT// } ]]; then
|
||||||
|
Error "Can not find target from $XML_FILE"
|
||||||
|
Debug "Xpath = $XPATH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
XPATH_RESULT=$RESULT
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch_tizen_pkgs_init()
|
||||||
|
{
|
||||||
|
TARGET=$1
|
||||||
|
PROFILE=$2
|
||||||
|
Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE"
|
||||||
|
|
||||||
|
TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs
|
||||||
|
if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi
|
||||||
|
mkdir -p $TMP_PKG_DIR
|
||||||
|
|
||||||
|
PKG_URL=$TIZEN_URL/$PROFILE/latest
|
||||||
|
|
||||||
|
BUILD_XML_URL=$PKG_URL/$BUILD_XML
|
||||||
|
TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML
|
||||||
|
TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML
|
||||||
|
TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML
|
||||||
|
TMP_PRIMARYGZ=${TMP_PRIMARY}.gz
|
||||||
|
|
||||||
|
Fetch $BUILD_XML_URL $TMP_BUILD
|
||||||
|
|
||||||
|
Debug "fetch $BUILD_XML_URL to $TMP_BUILD"
|
||||||
|
|
||||||
|
TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()"
|
||||||
|
Xpath_get $TARGET_XPATH $TMP_BUILD
|
||||||
|
TARGET_PATH=$XPATH_RESULT
|
||||||
|
TARGET_URL=$PKG_URL/$TARGET_PATH
|
||||||
|
|
||||||
|
REPOMD_URL=$TARGET_URL/repodata/repomd.xml
|
||||||
|
PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)'
|
||||||
|
|
||||||
|
Fetch $REPOMD_URL $TMP_REPOMD
|
||||||
|
|
||||||
|
Debug "fetch $REPOMD_URL to $TMP_REPOMD"
|
||||||
|
|
||||||
|
Xpath_get $PRIMARY_XPATH $TMP_REPOMD
|
||||||
|
PRIMARY_XML_PATH=$XPATH_RESULT
|
||||||
|
PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH
|
||||||
|
|
||||||
|
Fetch $PRIMARY_URL $TMP_PRIMARYGZ
|
||||||
|
|
||||||
|
Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ"
|
||||||
|
|
||||||
|
gunzip $TMP_PRIMARYGZ
|
||||||
|
|
||||||
|
Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY"
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch_tizen_pkgs()
|
||||||
|
{
|
||||||
|
ARCH=$1
|
||||||
|
PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)'
|
||||||
|
|
||||||
|
PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())'
|
||||||
|
|
||||||
|
for pkg in ${@:2}
|
||||||
|
do
|
||||||
|
Inform "Fetching... $pkg"
|
||||||
|
XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg}
|
||||||
|
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||||
|
Xpath_get $XPATH $TMP_PRIMARY
|
||||||
|
PKG_PATH=$XPATH_RESULT
|
||||||
|
|
||||||
|
XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg}
|
||||||
|
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||||
|
Xpath_get $XPATH $TMP_PRIMARY
|
||||||
|
CHECKSUM=$XPATH_RESULT
|
||||||
|
|
||||||
|
PKG_URL=$TARGET_URL/$PKG_PATH
|
||||||
|
PKG_FILE=$(basename $PKG_PATH)
|
||||||
|
PKG_PATH=$TMPDIR/$PKG_FILE
|
||||||
|
|
||||||
|
Debug "Download $PKG_URL to $PKG_PATH"
|
||||||
|
Fetch $PKG_URL $PKG_PATH true
|
||||||
|
|
||||||
|
echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
Error "Fail to fetch $PKG_URL to $PKG_PATH"
|
||||||
|
Debug "Checksum = $CHECKSUM"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
Inform "Initialize arm base"
|
||||||
|
fetch_tizen_pkgs_init standard base
|
||||||
|
Inform "fetch common packages"
|
||||||
|
fetch_tizen_pkgs armv7l gcc glibc glibc-devel libicu libicu-devel
|
||||||
|
fetch_tizen_pkgs noarch linux-glibc-devel
|
||||||
|
Inform "fetch coreclr packages"
|
||||||
|
fetch_tizen_pkgs armv7l lldb lldb-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel tizen-release lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
|
||||||
|
Inform "fetch corefx packages"
|
||||||
|
fetch_tizen_pkgs armv7l libcom_err libcom_err-devel zlib zlib-devel libopenssl libopenssl-devel krb5 krb5-devel libcurl libcurl-devel
|
||||||
|
|
||||||
|
Inform "Initialize standard unified"
|
||||||
|
fetch_tizen_pkgs_init standard unified
|
||||||
|
Inform "fetch corefx packages"
|
||||||
|
fetch_tizen_pkgs armv7l gssdp gssdp-devel
|
||||||
|
|
50
eng/common/cross/armel/tizen/tizen-dotnet.ks
Normal file
50
eng/common/cross/armel/tizen/tizen-dotnet.ks
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
lang en_US.UTF-8
|
||||||
|
keyboard us
|
||||||
|
timezone --utc Asia/Seoul
|
||||||
|
|
||||||
|
part / --fstype="ext4" --size=3500 --ondisk=mmcblk0 --label rootfs --fsoptions=defaults,noatime
|
||||||
|
|
||||||
|
rootpw tizen
|
||||||
|
desktop --autologinuser=root
|
||||||
|
user --name root --groups audio,video --password 'tizen'
|
||||||
|
|
||||||
|
repo --name=standard --baseurl=http://download.tizen.org/releases/milestone/tizen/unified/latest/repos/standard/packages/ --ssl_verify=no
|
||||||
|
repo --name=base --baseurl=http://download.tizen.org/releases/milestone/tizen/base/latest/repos/standard/packages/ --ssl_verify=no
|
||||||
|
|
||||||
|
%packages
|
||||||
|
tar
|
||||||
|
gzip
|
||||||
|
|
||||||
|
sed
|
||||||
|
grep
|
||||||
|
gawk
|
||||||
|
perl
|
||||||
|
|
||||||
|
binutils
|
||||||
|
findutils
|
||||||
|
util-linux
|
||||||
|
lttng-ust
|
||||||
|
userspace-rcu
|
||||||
|
procps-ng
|
||||||
|
tzdata
|
||||||
|
ca-certificates
|
||||||
|
|
||||||
|
|
||||||
|
### Core FX
|
||||||
|
libicu
|
||||||
|
libunwind
|
||||||
|
iputils
|
||||||
|
zlib
|
||||||
|
krb5
|
||||||
|
libcurl
|
||||||
|
libopenssl
|
||||||
|
|
||||||
|
%end
|
||||||
|
|
||||||
|
%post
|
||||||
|
|
||||||
|
### Update /tmp privilege
|
||||||
|
chmod 777 /tmp
|
||||||
|
####################################
|
||||||
|
|
||||||
|
%end
|
18
eng/common/cross/armel/tizen/tizen.patch
Normal file
18
eng/common/cross/armel/tizen/tizen.patch
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
|
||||||
|
--- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900
|
||||||
|
+++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900
|
||||||
|
@@ -2,4 +2,4 @@
|
||||||
|
Use the shared library, but some functions are only in
|
||||||
|
the static library, so try that secondarily. */
|
||||||
|
OUTPUT_FORMAT(elf32-littlearm)
|
||||||
|
-GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.3 ) )
|
||||||
|
+GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux.so.3 ) )
|
||||||
|
diff -u -r a/usr/lib/libpthread.so b/usr/lib/libpthread.so
|
||||||
|
--- a/usr/lib/libpthread.so 2016-12-30 23:00:19.408951841 +0900
|
||||||
|
+++ b/usr/lib/libpthread.so 2016-12-30 23:00:39.068951801 +0900
|
||||||
|
@@ -2,4 +2,4 @@
|
||||||
|
Use the shared library, but some functions are only in
|
||||||
|
the static library, so try that secondarily. */
|
||||||
|
OUTPUT_FORMAT(elf32-littlearm)
|
||||||
|
-GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a )
|
||||||
|
+GROUP ( libpthread.so.0 libpthread_nonshared.a )
|
137
eng/common/cross/build-android-rootfs.sh
Normal file
137
eng/common/cross/build-android-rootfs.sh
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
__NDK_Version=r14
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo "Creates a toolchain and sysroot used for cross-compiling for Android."
|
||||||
|
echo.
|
||||||
|
echo "Usage: $0 [BuildArch] [ApiLevel]"
|
||||||
|
echo.
|
||||||
|
echo "BuildArch is the target architecture of Android. Currently only arm64 is supported."
|
||||||
|
echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html"
|
||||||
|
echo.
|
||||||
|
echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior"
|
||||||
|
echo "by setting the TOOLCHAIN_DIR environment variable"
|
||||||
|
echo.
|
||||||
|
echo "By default, the NDK will be downloaded into the cross/android-rootfs/android-ndk-$__NDK_Version directory. If you already have an NDK installation,"
|
||||||
|
echo "you can set the NDK_DIR environment variable to have this script use that installation of the NDK."
|
||||||
|
echo "By default, this script will generate a file, android_platform, in the root of the ROOTFS_DIR directory that contains the RID for the supported and tested Android build: android.21-arm64. This file is to replace '/etc/os-release', which is not available for Android."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
__ApiLevel=21 # The minimum platform for arm64 is API level 21
|
||||||
|
__BuildArch=arm64
|
||||||
|
__AndroidArch=aarch64
|
||||||
|
__AndroidToolchain=aarch64-linux-android
|
||||||
|
|
||||||
|
for i in "$@"
|
||||||
|
do
|
||||||
|
lowerI="$(echo $i | awk '{print tolower($0)}')"
|
||||||
|
case $lowerI in
|
||||||
|
-?|-h|--help)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
arm64)
|
||||||
|
__BuildArch=arm64
|
||||||
|
__AndroidArch=aarch64
|
||||||
|
__AndroidToolchain=aarch64-linux-android
|
||||||
|
;;
|
||||||
|
arm)
|
||||||
|
__BuildArch=arm
|
||||||
|
__AndroidArch=arm
|
||||||
|
__AndroidToolchain=arm-linux-androideabi
|
||||||
|
;;
|
||||||
|
*[0-9])
|
||||||
|
__ApiLevel=$i
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Obtain the location of the bash script to figure out where the root of the repo is.
|
||||||
|
__CrossDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
__Android_Cross_Dir="$__CrossDir/android-rootfs"
|
||||||
|
__NDK_Dir="$__Android_Cross_Dir/android-ndk-$__NDK_Version"
|
||||||
|
__libunwind_Dir="$__Android_Cross_Dir/libunwind"
|
||||||
|
__lldb_Dir="$__Android_Cross_Dir/lldb"
|
||||||
|
__ToolchainDir="$__Android_Cross_Dir/toolchain/$__BuildArch"
|
||||||
|
|
||||||
|
if [[ -n "$TOOLCHAIN_DIR" ]]; then
|
||||||
|
__ToolchainDir=$TOOLCHAIN_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$NDK_DIR" ]]; then
|
||||||
|
__NDK_Dir=$NDK_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Target API level: $__ApiLevel"
|
||||||
|
echo "Target architecture: $__BuildArch"
|
||||||
|
echo "NDK location: $__NDK_Dir"
|
||||||
|
echo "Target Toolchain location: $__ToolchainDir"
|
||||||
|
|
||||||
|
# Download the NDK if required
|
||||||
|
if [ ! -d $__NDK_Dir ]; then
|
||||||
|
echo Downloading the NDK into $__NDK_Dir
|
||||||
|
mkdir -p $__NDK_Dir
|
||||||
|
wget -nv -nc --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__Android_Cross_Dir/android-ndk-$__NDK_Version-linux-x86_64.zip
|
||||||
|
unzip -q $__Android_Cross_Dir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__Android_Cross_Dir
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $__lldb_Dir ]; then
|
||||||
|
mkdir -p $__lldb_Dir
|
||||||
|
echo Downloading LLDB into $__lldb_Dir
|
||||||
|
wget -nv -nc --show-progress https://dl.google.com/android/repository/lldb-2.3.3614996-linux-x86_64.zip -O $__Android_Cross_Dir/lldb-2.3.3614996-linux-x86_64.zip
|
||||||
|
unzip -q $__Android_Cross_Dir/lldb-2.3.3614996-linux-x86_64.zip -d $__lldb_Dir
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the RootFS for both arm64 as well as aarch
|
||||||
|
rm -rf $__Android_Cross_Dir/toolchain
|
||||||
|
|
||||||
|
echo Generating the $__BuildArch toolchain
|
||||||
|
$__NDK_Dir/build/tools/make_standalone_toolchain.py --arch $__BuildArch --api $__ApiLevel --install-dir $__ToolchainDir
|
||||||
|
|
||||||
|
# Install the required packages into the toolchain
|
||||||
|
# TODO: Add logic to get latest pkg version instead of specific version number
|
||||||
|
rm -rf $__Android_Cross_Dir/deb/
|
||||||
|
rm -rf $__Android_Cross_Dir/tmp
|
||||||
|
|
||||||
|
mkdir -p $__Android_Cross_Dir/deb/
|
||||||
|
mkdir -p $__Android_Cross_Dir/tmp/$arch/
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libicu_60.2_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libicu_60.2_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libicu-dev_60.2_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libicu-dev_60.2_$__AndroidArch.deb
|
||||||
|
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-glob-dev_0.4_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-glob-dev_0.4_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-glob_0.4_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-glob_0.4_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-support-dev_22_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-support-dev_22_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-support_22_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-support_22_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/liblzma-dev_5.2.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/liblzma-dev_5.2.3_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/liblzma_5.2.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/liblzma_5.2.3_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libunwind-dev_1.2.20170304_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libunwind-dev_1.2.20170304_$__AndroidArch.deb
|
||||||
|
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libunwind_1.2.20170304_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libunwind_1.2.20170304_$__AndroidArch.deb
|
||||||
|
|
||||||
|
echo Unpacking Termux packages
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libicu_60.2_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libicu-dev_60.2_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libandroid-glob-dev_0.4_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libandroid-glob_0.4_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libandroid-support-dev_22_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libandroid-support_22_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/liblzma-dev_5.2.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/liblzma_5.2.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libunwind-dev_1.2.20170304_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
dpkg -x $__Android_Cross_Dir/deb/libunwind_1.2.20170304_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||||
|
|
||||||
|
cp -R $__Android_Cross_Dir/tmp/$__AndroidArch/data/data/com.termux/files/usr/* $__ToolchainDir/sysroot/usr/
|
||||||
|
|
||||||
|
# Generate platform file for build.sh script to assign to __DistroRid
|
||||||
|
echo "Generating platform file..."
|
||||||
|
|
||||||
|
echo "RID=android.21-arm64" > $__ToolchainDir/sysroot/android_platform
|
||||||
|
echo Now run:
|
||||||
|
echo CONFIG_DIR=\`realpath cross/android/$__BuildArch\` ROOTFS_DIR=\`realpath $__ToolchainDir/sysroot\` ./build.sh cross $__BuildArch skipgenerateversion skipnuget cmakeargs -DENABLE_LLDBPLUGIN=0
|
||||||
|
|
210
eng/common/cross/build-rootfs.sh
Normal file
210
eng/common/cross/build-rootfs.sh
Normal file
|
@ -0,0 +1,210 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount]"
|
||||||
|
echo "BuildArch can be: arm(default), armel, arm64, x86"
|
||||||
|
echo "LinuxCodeName - optional, Code name for Linux, can be: trusty(default), vivid, wily, xenial, zesty, bionic, alpine. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
|
||||||
|
echo "lldbx.y - optional, LLDB version, can be: lldb3.6(default), lldb3.8, lldb3.9, lldb4.0, no-lldb. Ignored for alpine"
|
||||||
|
echo "--skipunmount - optional, will skip the unmount of rootfs folder."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
__LinuxCodeName=trusty
|
||||||
|
__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||||
|
__InitialDir=$PWD
|
||||||
|
__BuildArch=arm
|
||||||
|
__UbuntuArch=armhf
|
||||||
|
__UbuntuRepo="http://ports.ubuntu.com/"
|
||||||
|
__LLDB_Package="lldb-3.6-dev"
|
||||||
|
__SkipUnmount=0
|
||||||
|
|
||||||
|
# base development support
|
||||||
|
__UbuntuPackages="build-essential"
|
||||||
|
|
||||||
|
__AlpinePackages="alpine-base"
|
||||||
|
__AlpinePackages+=" build-base"
|
||||||
|
__AlpinePackages+=" linux-headers"
|
||||||
|
__AlpinePackages+=" lldb-dev"
|
||||||
|
__AlpinePackages+=" llvm-dev"
|
||||||
|
|
||||||
|
# symlinks fixer
|
||||||
|
__UbuntuPackages+=" symlinks"
|
||||||
|
|
||||||
|
# CoreCLR and CoreFX dependencies
|
||||||
|
__UbuntuPackages+=" libicu-dev"
|
||||||
|
__UbuntuPackages+=" liblttng-ust-dev"
|
||||||
|
__UbuntuPackages+=" libunwind8-dev"
|
||||||
|
|
||||||
|
__AlpinePackages+=" gettext-dev"
|
||||||
|
__AlpinePackages+=" icu-dev"
|
||||||
|
__AlpinePackages+=" libunwind-dev"
|
||||||
|
__AlpinePackages+=" lttng-ust-dev"
|
||||||
|
|
||||||
|
# CoreFX dependencies
|
||||||
|
__UbuntuPackages+=" libcurl4-openssl-dev"
|
||||||
|
__UbuntuPackages+=" libkrb5-dev"
|
||||||
|
__UbuntuPackages+=" libssl-dev"
|
||||||
|
__UbuntuPackages+=" zlib1g-dev"
|
||||||
|
|
||||||
|
__AlpinePackages+=" curl-dev"
|
||||||
|
__AlpinePackages+=" krb5-dev"
|
||||||
|
__AlpinePackages+=" openssl-dev"
|
||||||
|
__AlpinePackages+=" zlib-dev"
|
||||||
|
|
||||||
|
__UnprocessedBuildArgs=
|
||||||
|
for i in "$@" ; do
|
||||||
|
lowerI="$(echo $i | awk '{print tolower($0)}')"
|
||||||
|
case $lowerI in
|
||||||
|
-?|-h|--help)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
arm)
|
||||||
|
__BuildArch=arm
|
||||||
|
__UbuntuArch=armhf
|
||||||
|
__AlpineArch=armhf
|
||||||
|
__QEMUArch=arm
|
||||||
|
;;
|
||||||
|
arm64)
|
||||||
|
__BuildArch=arm64
|
||||||
|
__UbuntuArch=arm64
|
||||||
|
__AlpineArch=aarch64
|
||||||
|
__QEMUArch=aarch64
|
||||||
|
;;
|
||||||
|
armel)
|
||||||
|
__BuildArch=armel
|
||||||
|
__UbuntuArch=armel
|
||||||
|
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||||
|
__LinuxCodeName=jessie
|
||||||
|
;;
|
||||||
|
x86)
|
||||||
|
__BuildArch=x86
|
||||||
|
__UbuntuArch=i386
|
||||||
|
__UbuntuRepo="http://archive.ubuntu.com/ubuntu/"
|
||||||
|
;;
|
||||||
|
lldb3.6)
|
||||||
|
__LLDB_Package="lldb-3.6-dev"
|
||||||
|
;;
|
||||||
|
lldb3.8)
|
||||||
|
__LLDB_Package="lldb-3.8-dev"
|
||||||
|
;;
|
||||||
|
lldb3.9)
|
||||||
|
__LLDB_Package="liblldb-3.9-dev"
|
||||||
|
;;
|
||||||
|
lldb4.0)
|
||||||
|
__LLDB_Package="liblldb-4.0-dev"
|
||||||
|
;;
|
||||||
|
no-lldb)
|
||||||
|
unset __LLDB_Package
|
||||||
|
;;
|
||||||
|
vivid)
|
||||||
|
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||||
|
__LinuxCodeName=vivid
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
wily)
|
||||||
|
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||||
|
__LinuxCodeName=wily
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
xenial)
|
||||||
|
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||||
|
__LinuxCodeName=xenial
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
zesty)
|
||||||
|
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||||
|
__LinuxCodeName=zesty
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
bionic)
|
||||||
|
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||||
|
__LinuxCodeName=bionic
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
jessie)
|
||||||
|
__LinuxCodeName=jessie
|
||||||
|
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||||
|
;;
|
||||||
|
tizen)
|
||||||
|
if [ "$__BuildArch" != "armel" ]; then
|
||||||
|
echo "Tizen is available only for armel."
|
||||||
|
usage;
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
__LinuxCodeName=
|
||||||
|
__UbuntuRepo=
|
||||||
|
__Tizen=tizen
|
||||||
|
;;
|
||||||
|
alpine)
|
||||||
|
__LinuxCodeName=alpine
|
||||||
|
__UbuntuRepo=
|
||||||
|
;;
|
||||||
|
--skipunmount)
|
||||||
|
__SkipUnmount=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$__BuildArch" == "armel" ]; then
|
||||||
|
__LLDB_Package="lldb-3.5-dev"
|
||||||
|
fi
|
||||||
|
__UbuntuPackages+=" ${__LLDB_Package:-}"
|
||||||
|
|
||||||
|
__RootfsDir="$__CrossDir/rootfs/$__BuildArch"
|
||||||
|
|
||||||
|
if [[ -n "$ROOTFS_DIR" ]]; then
|
||||||
|
__RootfsDir=$ROOTFS_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$__RootfsDir" ]; then
|
||||||
|
if [ $__SkipUnmount == 0 ]; then
|
||||||
|
umount $__RootfsDir/*
|
||||||
|
fi
|
||||||
|
rm -rf $__RootfsDir
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$__LinuxCodeName" == "alpine" ]]; then
|
||||||
|
__ApkToolsVersion=2.9.1
|
||||||
|
__AlpineVersion=3.7
|
||||||
|
__ApkToolsDir=$(mktemp -d)
|
||||||
|
wget https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -P $__ApkToolsDir
|
||||||
|
tar -xf $__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -C $__ApkToolsDir
|
||||||
|
mkdir -p $__RootfsDir/usr/bin
|
||||||
|
cp -v /usr/bin/qemu-$__QEMUArch-static $__RootfsDir/usr/bin
|
||||||
|
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||||
|
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main \
|
||||||
|
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community \
|
||||||
|
-X http://dl-cdn.alpinelinux.org/alpine/edge/testing \
|
||||||
|
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||||
|
add $__AlpinePackages
|
||||||
|
rm -r $__ApkToolsDir
|
||||||
|
elif [[ -n $__LinuxCodeName ]]; then
|
||||||
|
qemu-debootstrap --arch $__UbuntuArch $__LinuxCodeName $__RootfsDir $__UbuntuRepo
|
||||||
|
cp $__CrossDir/$__BuildArch/sources.list.$__LinuxCodeName $__RootfsDir/etc/apt/sources.list
|
||||||
|
chroot $__RootfsDir apt-get update
|
||||||
|
chroot $__RootfsDir apt-get -f -y install
|
||||||
|
chroot $__RootfsDir apt-get -y install $__UbuntuPackages
|
||||||
|
chroot $__RootfsDir symlinks -cr /usr
|
||||||
|
|
||||||
|
if [ $__SkipUnmount == 0 ]; then
|
||||||
|
umount $__RootfsDir/*
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$__BuildArch" == "arm" && "$__LinuxCodeName" == "trusty" ]]; then
|
||||||
|
pushd $__RootfsDir
|
||||||
|
patch -p1 < $__CrossDir/$__BuildArch/trusty.patch
|
||||||
|
patch -p1 < $__CrossDir/$__BuildArch/trusty-lttng-2.4.patch
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
elif [ "$__Tizen" == "tizen" ]; then
|
||||||
|
ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
|
||||||
|
else
|
||||||
|
echo "Unsupported target platform."
|
||||||
|
usage;
|
||||||
|
exit 1
|
||||||
|
fi
|
138
eng/common/cross/toolchain.cmake
Normal file
138
eng/common/cross/toolchain.cmake
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
set(CROSS_ROOTFS $ENV{ROOTFS_DIR})
|
||||||
|
|
||||||
|
set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH})
|
||||||
|
set(CMAKE_SYSTEM_NAME Linux)
|
||||||
|
set(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
|
||||||
|
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR armv7l)
|
||||||
|
set(TOOLCHAIN "arm-linux-gnueabi")
|
||||||
|
if("$ENV{__DistroRid}" MATCHES "tizen.*")
|
||||||
|
set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/6.2.1")
|
||||||
|
endif()
|
||||||
|
elseif(TARGET_ARCH_NAME STREQUAL "arm")
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR armv7l)
|
||||||
|
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/armv6-alpine-linux-musleabihf)
|
||||||
|
set(TOOLCHAIN "armv6-alpine-linux-musleabihf")
|
||||||
|
else()
|
||||||
|
set(TOOLCHAIN "arm-linux-gnueabihf")
|
||||||
|
endif()
|
||||||
|
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||||
|
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/aarch64-alpine-linux-musl)
|
||||||
|
set(TOOLCHAIN "aarch64-alpine-linux-musl")
|
||||||
|
else()
|
||||||
|
set(TOOLCHAIN "aarch64-linux-gnu")
|
||||||
|
endif()
|
||||||
|
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
|
set(CMAKE_SYSTEM_PROCESSOR i686)
|
||||||
|
set(TOOLCHAIN "i686-linux-gnu")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64 and x86 are supported!")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Specify include paths
|
||||||
|
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||||
|
if(DEFINED TIZEN_TOOLCHAIN)
|
||||||
|
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||||
|
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# add_compile_param - adds only new options without duplicates.
|
||||||
|
# arg0 - list with result options, arg1 - list with new options.
|
||||||
|
# arg2 - optional argument, quick summary string for optional using CACHE FORCE mode.
|
||||||
|
macro(add_compile_param)
|
||||||
|
if(NOT ${ARGC} MATCHES "^(2|3)$")
|
||||||
|
message(FATAL_ERROR "Wrong using add_compile_param! Two or three parameters must be given! See add_compile_param description.")
|
||||||
|
endif()
|
||||||
|
foreach(OPTION ${ARGV1})
|
||||||
|
if(NOT ${ARGV0} MATCHES "${OPTION}($| )")
|
||||||
|
set(${ARGV0} "${${ARGV0}} ${OPTION}")
|
||||||
|
if(${ARGC} EQUAL "3") # CACHE FORCE mode
|
||||||
|
set(${ARGV0} "${${ARGV0}}" CACHE STRING "${ARGV2}" FORCE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# Specify link flags
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "--sysroot=${CROSS_ROOTFS}")
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "--gcc-toolchain=${CROSS_ROOTFS}/usr")
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "--target=${TOOLCHAIN}")
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "-fuse-ld=gold")
|
||||||
|
|
||||||
|
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||||
|
if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/lib")
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib")
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||||
|
endif()
|
||||||
|
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
|
add_compile_param(CROSS_LINK_FLAGS "-m32")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_compile_param(CMAKE_EXE_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
||||||
|
add_compile_param(CMAKE_SHARED_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
||||||
|
add_compile_param(CMAKE_MODULE_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
||||||
|
|
||||||
|
# Specify compile options
|
||||||
|
add_compile_options("--sysroot=${CROSS_ROOTFS}")
|
||||||
|
add_compile_options("--target=${TOOLCHAIN}")
|
||||||
|
add_compile_options("--gcc-toolchain=${CROSS_ROOTFS}/usr")
|
||||||
|
|
||||||
|
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$")
|
||||||
|
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
|
||||||
|
set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
|
||||||
|
set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
|
||||||
|
add_compile_options(-mthumb)
|
||||||
|
add_compile_options(-mfpu=vfpv3)
|
||||||
|
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||||
|
add_compile_options(-mfloat-abi=softfp)
|
||||||
|
if(DEFINED TIZEN_TOOLCHAIN)
|
||||||
|
add_compile_options(-Wno-deprecated-declarations) # compile-time option
|
||||||
|
add_compile_options(-D__extern_always_inline=inline) # compile-time option
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
|
add_compile_options(-m32)
|
||||||
|
add_compile_options(-Wno-error=unused-command-line-argument)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Set LLDB include and library paths
|
||||||
|
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
|
||||||
|
if(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
|
set(LLVM_CROSS_DIR "$ENV{LLVM_CROSS_HOME}")
|
||||||
|
else() # arm/armel case
|
||||||
|
set(LLVM_CROSS_DIR "$ENV{LLVM_ARM_HOME}")
|
||||||
|
endif()
|
||||||
|
if(LLVM_CROSS_DIR)
|
||||||
|
set(WITH_LLDB_LIBS "${LLVM_CROSS_DIR}/lib/" CACHE STRING "")
|
||||||
|
set(WITH_LLDB_INCLUDES "${LLVM_CROSS_DIR}/include" CACHE STRING "")
|
||||||
|
set(LLDB_H "${WITH_LLDB_INCLUDES}" CACHE STRING "")
|
||||||
|
set(LLDB "${LLVM_CROSS_DIR}/lib/liblldb.so" CACHE STRING "")
|
||||||
|
else()
|
||||||
|
if(TARGET_ARCH_NAME STREQUAL "x86")
|
||||||
|
set(WITH_LLDB_LIBS "${CROSS_ROOTFS}/usr/lib/i386-linux-gnu" CACHE STRING "")
|
||||||
|
set(CHECK_LLVM_DIR "${CROSS_ROOTFS}/usr/lib/llvm-3.8/include")
|
||||||
|
if(EXISTS "${CHECK_LLVM_DIR}" AND IS_DIRECTORY "${CHECK_LLVM_DIR}")
|
||||||
|
set(WITH_LLDB_INCLUDES "${CHECK_LLVM_DIR}")
|
||||||
|
else()
|
||||||
|
set(WITH_LLDB_INCLUDES "${CROSS_ROOTFS}/usr/lib/llvm-3.6/include")
|
||||||
|
endif()
|
||||||
|
else() # arm/armel case
|
||||||
|
set(WITH_LLDB_LIBS "${CROSS_ROOTFS}/usr/lib/${TOOLCHAIN}" CACHE STRING "")
|
||||||
|
set(WITH_LLDB_INCLUDES "${CROSS_ROOTFS}/usr/lib/llvm-3.6/include" CACHE STRING "")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
@ -4,17 +4,17 @@ $verbosity = "m"
|
||||||
function InstallDarcCli {
|
function InstallDarcCli {
|
||||||
$darcCliPackageName = "microsoft.dotnet.darc"
|
$darcCliPackageName = "microsoft.dotnet.darc"
|
||||||
$dotnet = "$env:DOTNET_INSTALL_DIR\dotnet.exe"
|
$dotnet = "$env:DOTNET_INSTALL_DIR\dotnet.exe"
|
||||||
$toolList = Invoke-Expression "$dotnet tool list -g"
|
$toolList = Invoke-Expression "& `"$dotnet`" tool list -g"
|
||||||
|
|
||||||
if ($toolList -like "*$darcCliPackageName*") {
|
if ($toolList -like "*$darcCliPackageName*") {
|
||||||
Invoke-Expression "$dotnet tool uninstall $darcCliPackageName -g"
|
Invoke-Expression "& `"$dotnet`" tool uninstall $darcCliPackageName -g"
|
||||||
}
|
}
|
||||||
|
|
||||||
$toolsetVersion = $GlobalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk'
|
$toolsetVersion = $GlobalJson.'msbuild-sdks'.'Microsoft.DotNet.Arcade.Sdk'
|
||||||
|
|
||||||
Write-Host "Installing Darc CLI version $toolsetVersion..."
|
Write-Host "Installing Darc CLI version $toolsetVersion..."
|
||||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
||||||
Invoke-Expression "$dotnet tool install $darcCliPackageName --version $toolsetVersion -v $verbosity -g"
|
Invoke-Expression "& `"$dotnet`" tool install $darcCliPackageName --version $toolsetVersion -v $verbosity -g"
|
||||||
}
|
}
|
||||||
|
|
||||||
InitializeTools
|
InitializeTools
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
<Project Sdk="Microsoft.DotNet.Helix.Sdk">
|
<Project Sdk="Microsoft.DotNet.Helix.Sdk">
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<HelixCorrelationPayload Include="$(CorrelationPayloadDirectory)">
|
||||||
|
<PayloadDirectory>%(Identity)</PayloadDirectory>
|
||||||
|
</HelixCorrelationPayload>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<HelixWorkItem Include="WorkItem">
|
<HelixWorkItem Include="WorkItem">
|
||||||
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
|
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
|
||||||
|
|
|
@ -7,6 +7,14 @@ parameters:
|
||||||
|
|
||||||
# Optional: name of the phase (not specifying phase name may cause name collisions)
|
# Optional: name of the phase (not specifying phase name may cause name collisions)
|
||||||
name: ''
|
name: ''
|
||||||
|
# Optional: display name of the phase
|
||||||
|
displayName: ''
|
||||||
|
|
||||||
|
# Optional: condition for the job to run
|
||||||
|
condition: ''
|
||||||
|
|
||||||
|
# Optional: dependencies of the phase
|
||||||
|
dependsOn: ''
|
||||||
|
|
||||||
# Required: A defined YAML queue
|
# Required: A defined YAML queue
|
||||||
queue: {}
|
queue: {}
|
||||||
|
@ -17,6 +25,10 @@ parameters:
|
||||||
# Optional: variables
|
# Optional: variables
|
||||||
variables: {}
|
variables: {}
|
||||||
|
|
||||||
|
# Optional: should run as a public build even in the internal project
|
||||||
|
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
|
||||||
|
runAsPublic: false
|
||||||
|
|
||||||
## Telemetry variables
|
## Telemetry variables
|
||||||
|
|
||||||
# Optional: enable sending telemetry
|
# Optional: enable sending telemetry
|
||||||
|
@ -38,10 +50,19 @@ parameters:
|
||||||
phases:
|
phases:
|
||||||
- phase: ${{ parameters.name }}
|
- phase: ${{ parameters.name }}
|
||||||
|
|
||||||
|
${{ if ne(parameters.displayName, '') }}:
|
||||||
|
displayName: ${{ parameters.displayName }}
|
||||||
|
|
||||||
|
${{ if ne(parameters.condition, '') }}:
|
||||||
|
condition: ${{ parameters.condition }}
|
||||||
|
|
||||||
|
${{ if ne(parameters.dependsOn, '') }}:
|
||||||
|
dependsOn: ${{ parameters.dependsOn }}
|
||||||
|
|
||||||
queue: ${{ parameters.queue }}
|
queue: ${{ parameters.queue }}
|
||||||
|
|
||||||
${{ if ne(parameters.variables, '') }}:
|
${{ if ne(parameters.variables, '') }}:
|
||||||
variables:
|
variables:
|
||||||
${{ insert }}: ${{ parameters.variables }}
|
${{ insert }}: ${{ parameters.variables }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -56,11 +77,12 @@ phases:
|
||||||
buildConfig: $(_HelixBuildConfig)
|
buildConfig: $(_HelixBuildConfig)
|
||||||
helixSource: $(_HelixSource)
|
helixSource: $(_HelixSource)
|
||||||
helixType: $(_HelixType)
|
helixType: $(_HelixType)
|
||||||
|
runAsPublic: ${{ parameters.runAsPublic }}
|
||||||
|
|
||||||
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
||||||
# Internal only resource, and Microbuild signing shouldn't be applied to PRs.
|
# Internal only resource, and Microbuild signing shouldn't be applied to PRs.
|
||||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||||
- task: MicroBuildSigningPlugin@1
|
- task: MicroBuildSigningPlugin@2
|
||||||
displayName: Install MicroBuild plugin
|
displayName: Install MicroBuild plugin
|
||||||
inputs:
|
inputs:
|
||||||
signType: $(_SignType)
|
signType: $(_SignType)
|
||||||
|
@ -77,7 +99,7 @@ phases:
|
||||||
|
|
||||||
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
|
||||||
# Internal only resources
|
# Internal only resources
|
||||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||||
- task: MicroBuildCleanup@1
|
- task: MicroBuildCleanup@1
|
||||||
displayName: Execute Microbuild cleanup tasks
|
displayName: Execute Microbuild cleanup tasks
|
||||||
condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
|
condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
|
||||||
|
@ -90,7 +112,7 @@ phases:
|
||||||
helixSource: $(_HelixSource)
|
helixSource: $(_HelixSource)
|
||||||
helixType: $(_HelixType)
|
helixType: $(_HelixType)
|
||||||
|
|
||||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||||
- task: CopyFiles@2
|
- task: CopyFiles@2
|
||||||
displayName: Gather Asset Manifests
|
displayName: Gather Asset Manifests
|
||||||
inputs:
|
inputs:
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
parameters:
|
|
||||||
dependsOn: ''
|
|
||||||
queue: {}
|
|
||||||
phases:
|
|
||||||
- phase: Push to B.A.R.
|
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
|
||||||
queue: ${{ parameters.queue }}
|
|
||||||
steps:
|
|
||||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
||||||
- task: DownloadBuildArtifacts@0
|
|
||||||
displayName: Download artifact
|
|
||||||
inputs:
|
|
||||||
artifactName: AssetManifests
|
|
||||||
downloadPath: '$(Build.StagingDirectory)/Download'
|
|
||||||
condition: succeeded()
|
|
||||||
- task: AzureKeyVault@1
|
|
||||||
inputs:
|
|
||||||
azureSubscription: 'DotNet-Engineering-Services_KeyVault'
|
|
||||||
KeyVaultName: EngKeyVault
|
|
||||||
SecretsFilter: 'MaestroAccessToken'
|
|
||||||
condition: succeeded()
|
|
||||||
- script: eng\common\publishbuildassets.cmd
|
|
||||||
/p:ManifestZipFilePath='$(Build.StagingDirectory)/Download/AssetManifests'
|
|
||||||
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
|
|
||||||
/p:MaestroApiEndpoint=https://maestro-int.westus2.cloudapp.azure.com
|
|
||||||
displayName: Push Build Assets
|
|
|
@ -1,27 +1,38 @@
|
||||||
parameters:
|
parameters:
|
||||||
dependsOn: ''
|
dependsOn: ''
|
||||||
queue: {}
|
queue: {}
|
||||||
|
configuration: 'Debug'
|
||||||
|
condition: succeeded()
|
||||||
|
continueOnError: false
|
||||||
|
runAsPublic: false
|
||||||
phases:
|
phases:
|
||||||
- phase: Asset_Registry_Publish
|
- phase: Asset_Registry_Publish
|
||||||
displayName: Publish to Build Asset Registry
|
displayName: Publish to Build Asset Registry
|
||||||
dependsOn: ${{ parameters.dependsOn }}
|
dependsOn: ${{ parameters.dependsOn }}
|
||||||
queue: ${{ parameters.queue }}
|
queue: ${{ parameters.queue }}
|
||||||
|
variables:
|
||||||
|
config: ${{ parameters.configuration }}
|
||||||
steps:
|
steps:
|
||||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||||
- task: DownloadBuildArtifacts@0
|
- task: DownloadBuildArtifacts@0
|
||||||
displayName: Download artifact
|
displayName: Download artifact
|
||||||
inputs:
|
inputs:
|
||||||
artifactName: AssetManifests
|
artifactName: AssetManifests
|
||||||
downloadPath: '$(Build.StagingDirectory)/Download'
|
downloadPath: '$(Build.StagingDirectory)/Download'
|
||||||
condition: succeeded()
|
condition: ${{ parameters.condition }}
|
||||||
|
continueOnError: ${{ parameters.continueOnError }}
|
||||||
- task: AzureKeyVault@1
|
- task: AzureKeyVault@1
|
||||||
inputs:
|
inputs:
|
||||||
azureSubscription: 'DotNet-Engineering-Services_KeyVault'
|
azureSubscription: 'DotNet-Engineering-Services_KeyVault'
|
||||||
KeyVaultName: EngKeyVault
|
KeyVaultName: EngKeyVault
|
||||||
SecretsFilter: 'MaestroAccessToken'
|
SecretsFilter: 'MaestroAccessToken'
|
||||||
condition: succeeded()
|
condition: ${{ parameters.condition }}
|
||||||
|
continueOnError: ${{ parameters.continueOnError }}
|
||||||
- script: eng\common\publishbuildassets.cmd
|
- script: eng\common\publishbuildassets.cmd
|
||||||
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
|
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
|
||||||
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
|
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
|
||||||
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
|
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
|
||||||
displayName: Publish Build Assets
|
/p:Configuration=$(config)
|
||||||
|
displayName: Publish Build Assets
|
||||||
|
condition: ${{ parameters.condition }}
|
||||||
|
continueOnError: ${{ parameters.continueOnError }}
|
||||||
|
|
|
@ -8,9 +8,14 @@ parameters:
|
||||||
HelixPostCommands: ''
|
HelixPostCommands: ''
|
||||||
WorkItemDirectory: ''
|
WorkItemDirectory: ''
|
||||||
WorkItemCommand: ''
|
WorkItemCommand: ''
|
||||||
IncludeDotNetSdk: false
|
CorrelationPayloadDirectory: ''
|
||||||
|
IncludeDotNetCli: false
|
||||||
|
DotNetCliPackageType: ''
|
||||||
|
DotNetCliVersion: ''
|
||||||
EnableXUnitReporter: false
|
EnableXUnitReporter: false
|
||||||
WaitForWorkItemCompletion: true
|
WaitForWorkItemCompletion: true
|
||||||
|
condition: succeeded()
|
||||||
|
continueOnError: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: DotNetCoreCLI@2
|
- task: DotNetCoreCLI@2
|
||||||
|
@ -28,8 +33,12 @@ steps:
|
||||||
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
HelixAccessToken: ${{ parameters.HelixAccessToken }}
|
||||||
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
HelixPreCommands: ${{ parameters.HelixPreCommands }}
|
||||||
HelixPostCommands: ${{ parameters.HelixPostCommands }}
|
HelixPostCommands: ${{ parameters.HelixPostCommands }}
|
||||||
IncludeDotNetSdk: ${{ parameters.IncludeDotNetSdk }}
|
|
||||||
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
|
||||||
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
|
||||||
WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
|
WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
|
||||||
WorkItemCommand: ${{ parameters.WorkItemCommand }}
|
WorkItemCommand: ${{ parameters.WorkItemCommand }}
|
||||||
|
IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
|
||||||
|
DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
|
||||||
|
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
|
||||||
|
EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
|
||||||
|
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
|
||||||
|
condition: ${{ parameters.condition }}
|
||||||
|
continueOnError: ${{ parameters.continueOnError }}
|
||||||
|
|
|
@ -2,9 +2,10 @@ parameters:
|
||||||
helixSource: 'undefined_defaulted_in_telemetry.yml'
|
helixSource: 'undefined_defaulted_in_telemetry.yml'
|
||||||
helixType: 'undefined_defaulted_in_telemetry.yml'
|
helixType: 'undefined_defaulted_in_telemetry.yml'
|
||||||
buildConfig: ''
|
buildConfig: ''
|
||||||
|
runAsPublic: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- ${{ if not(eq(variables['System.TeamProject'], 'public')) }}:
|
- ${{ if and(eq(parameters.runAsPublic, 'false'), not(eq(variables['System.TeamProject'], 'public'))) }}:
|
||||||
- task: AzureKeyVault@1
|
- task: AzureKeyVault@1
|
||||||
inputs:
|
inputs:
|
||||||
azureSubscription: 'HelixProd_KeyVault'
|
azureSubscription: 'HelixProd_KeyVault'
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
"dotnet": "3.0.100-alpha1-009697"
|
"dotnet": "3.0.100-alpha1-009697"
|
||||||
},
|
},
|
||||||
"msbuild-sdks": {
|
"msbuild-sdks": {
|
||||||
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.18520.3"
|
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.18556.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue