|
3 | 3 | set -o errexit
|
4 | 4 | set -x
|
5 | 5 |
|
6 |
| -KERNELSRC="" |
7 | 6 | CFLAGS="-Werror"
|
8 | 7 | SPARSE_FLAGS=""
|
9 | 8 | EXTRA_OPTS=""
|
10 | 9 | TARGET="x86_64-native-linuxapp-gcc"
|
11 | 10 |
|
12 |
| -function install_kernel() |
13 |
| -{ |
14 |
| - if [[ "$1" =~ ^4.* ]]; then |
15 |
| - PREFIX="v4.x" |
16 |
| - elif [[ "$1" =~ ^3.* ]]; then |
17 |
| - PREFIX="v3.x" |
18 |
| - else |
19 |
| - PREFIX="v2.6/longterm/v2.6.32" |
20 |
| - fi |
21 |
| - |
22 |
| - wget https://cdn.kernel.org/pub/linux/kernel/${PREFIX}/linux-${1}.tar.xz |
23 |
| - tar xvf linux-${1}.tar.xz > /dev/null |
24 |
| - cd linux-${1} |
25 |
| - make allmodconfig |
26 |
| - |
27 |
| - # Cannot use CONFIG_KCOV: -fsanitize-coverage=trace-pc is not supported by compiler |
28 |
| - sed -i 's/CONFIG_KCOV=y/CONFIG_KCOV=n/' .config |
29 |
| - |
30 |
| - # stack validation depends on tools/objtool, but objtool does not compile on travis. |
31 |
| - # It is giving following error. |
32 |
| - # >>> GEN arch/x86/insn/inat-tables.c |
33 |
| - # >>> Semantic error at 40: Unknown imm opnd: AL |
34 |
| - # So for now disable stack-validation for the build. |
35 |
| - |
36 |
| - sed -i 's/CONFIG_STACK_VALIDATION=y/CONFIG_STACK_VALIDATION=n/' .config |
37 |
| - make oldconfig |
38 |
| - |
39 |
| - # Older kernels do not include openvswitch |
40 |
| - if [ -d "net/openvswitch" ]; then |
41 |
| - make net/openvswitch/ |
42 |
| - else |
43 |
| - make net/bridge/ |
44 |
| - fi |
45 |
| - |
46 |
| - KERNELSRC=$(pwd) |
47 |
| - if [ ! "$DPDK" ] && [ ! "$DPDK_SHARED" ]; then |
48 |
| - EXTRA_OPTS="--with-linux=$(pwd)" |
49 |
| - fi |
50 |
| - echo "Installed kernel source in $(pwd)" |
51 |
| - cd .. |
52 |
| -} |
53 |
| - |
54 |
| -function install_dpdk() |
55 |
| -{ |
56 |
| - if [ -n "$DPDK_GIT" ]; then |
57 |
| - git clone $DPDK_GIT dpdk-$1 |
58 |
| - cd dpdk-$1 |
59 |
| - git checkout tags/v$1 |
60 |
| - else |
61 |
| - wget https://fast.dpdk.org/rel/dpdk-$1.tar.xz |
62 |
| - tar xvf dpdk-$1.tar.xz > /dev/null |
63 |
| - DIR_NAME=$(tar -tf dpdk-$1.tar.xz | head -1 | cut -f1 -d"/") |
64 |
| - if [ $DIR_NAME != "dpdk-$1" ]; then mv $DIR_NAME dpdk-$1; fi |
65 |
| - cd dpdk-$1 |
66 |
| - fi |
67 |
| - find ./ -type f | xargs sed -i 's/max-inline-insns-single=100/max-inline-insns-single=400/' |
68 |
| - find ./ -type f | xargs sed -i 's/-Werror/-Werror -Wno-error=inline/' |
69 |
| - echo 'CONFIG_RTE_BUILD_FPIC=y' >>config/common_linuxapp |
70 |
| - sed -ri '/EXECENV_CFLAGS = -pthread -fPIC/{s/$/\nelse ifeq ($(CONFIG_RTE_BUILD_FPIC),y)/;s/$/\nEXECENV_CFLAGS = -pthread -fPIC/}' mk/exec-env/linuxapp/rte.vars.mk |
71 |
| - if [ "$DPDK_SHARED" ]; then |
72 |
| - sed -i '/CONFIG_RTE_BUILD_SHARED_LIB=n/s/=n/=y/' config/common_base |
73 |
| - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/$TARGET/lib |
74 |
| - fi |
75 |
| - make config CC=gcc T=$TARGET |
76 |
| - make -j4 CC=gcc RTE_KERNELDIR=$KERNELSRC |
77 |
| - echo "Installed DPDK source in $(pwd)" |
78 |
| - cd .. |
79 |
| -} |
80 |
| - |
81 | 11 | function configure_ovs()
|
82 | 12 | {
|
83 | 13 | ./boot.sh && ./configure $* || { cat config.log; exit 1; }
|
84 | 14 | }
|
85 | 15 |
|
86 |
| -if [ "$KERNEL" ] || [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then |
87 |
| - install_kernel $KERNEL |
88 |
| -fi |
89 |
| - |
90 |
| -if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then |
91 |
| - if [ -z "$DPDK_VER" ]; then |
92 |
| - DPDK_VER="18.11" |
93 |
| - fi |
94 |
| - install_dpdk $DPDK_VER |
95 |
| - if [ "$CC" = "clang" ]; then |
96 |
| - # Disregard cast alignment errors until DPDK is fixed |
97 |
| - CFLAGS="$CFLAGS -Wno-cast-align" |
98 |
| - fi |
99 |
| - EXTRA_OPTS="$EXTRA_OPTS --with-dpdk=$(pwd)/dpdk-$DPDK_VER/build" |
100 |
| -elif [ "$CC" != "clang" ]; then |
101 |
| - # DPDK headers currently trigger sparse errors |
102 |
| - SPARSE_FLAGS="$SPARSE_FLAGS -Wsparse-error" |
103 |
| -fi |
104 |
| - |
105 | 16 | OPTS="$EXTRA_OPTS $*"
|
106 | 17 |
|
107 | 18 | if [ "$CC" = "clang" ]; then
|
|
116 | 27 |
|
117 | 28 | if [ "$TESTSUITE" ]; then
|
118 | 29 | # 'distcheck' will reconfigure with required options.
|
119 |
| - # Now we only need to prepare the Makefile wihtout sparse-wrapped CC. |
| 30 | + # Now we only need to prepare the Makefile without sparse-wrapped CC. |
120 | 31 | configure_ovs
|
121 | 32 |
|
122 | 33 | export DISTCHECK_CONFIGURE_FLAGS="$OPTS"
|
123 |
| - if ! make distcheck TESTSUITEFLAGS=-j4 RECHECK=yes; then |
| 34 | + if ! make distcheck -j4 TESTSUITEFLAGS="-j4 -k ovn" RECHECK=yes; then |
124 | 35 | # testsuite.log is necessary for debugging.
|
125 | 36 | cat */_build/tests/testsuite.log
|
126 | 37 | exit 1
|
|
129 | 40 | configure_ovs $OPTS
|
130 | 41 | make selinux-policy
|
131 | 42 |
|
132 |
| - # Only build datapath if we are testing kernel w/o running testsuite |
133 |
| - if [ "$KERNEL" ] && [ ! "$DPDK" ] && [ ! "$DPDK_SHARED" ]; then |
134 |
| - cd datapath |
135 |
| - fi |
136 | 43 | make -j4
|
137 | 44 | fi
|
138 | 45 |
|
|
0 commit comments