Change pkg-config generation such that the path variables,
not their values, are used in the definitions of Libs and Cflags,
and that $prefix is substituted into libdir and includedir iff
they start with its value.
This makes it easier to modify the already installed file if necessary.
Add explicit "apt-get update" for all test cases which uses "apt-get".
- It may help to stabilize fetching from apt archive.
As for "CC=gcc-11"
- Add "g++-11" package.
- "g++-11" has been removed from the default virtual environment.
https://github.com/actions/virtual-environments/issues/3467
[lz4-c-compilers] contains the following commands
```
make all
CFLAGS=-fPIC LDFLAGS='-pie -fPIE -D_FORTIFY_SOURCE=2' make -C programs
```
[lz4-c-compilers] 025c3ce8f9/.github/workflows/ci.yml (L17-L154)
Disable "(Trusty) gcc-6 standard C compilation"
[lz4-c-compilers] contains the following commands for gcc-6
```
make c_standards
make -C tests test-lz4
```
[lz4-c-compilers] 025c3ce8f9/.github/workflows/ci.yml (L17-L154)
[lz4-compilers] contains the following commands.
Note that `make all` contains `make examples`
```
make cxxtest
make clean
make examples
make clean cmake
make clean clangtest
```
[lz4-build-make-travis-install] contains the following commands.
```
make travis-install
```
[lz4-c-compilers] 025c3ce8f9/.github/workflows/ci.yml (L17-L154)
[lz4-build-make-travis-install] 025c3ce8f9/.github/workflows/ci.yml (L498-L510)
[lz4-custom-distance] contains the following command
```
MOREFLAGS='-DLZ4_DISTANCE_MAX=8000' make V=1 check
make V=1 -C programs lz4-wlib
make V=1 -C tests fullbench-wmalloc # test LZ4_USER_MEMORY_FUNCTIONS
CC="c++ -Wno-deprecated" make V=1 -C tests fullbench-wmalloc # stricter function signature check
```
Actually, there're 3+1 tests
(1) Test for Custom LZ4_DISTANCE_MAX. 6654c2c, #753, #755
(2) Test for dynamic link library. 3dd34df, #888
(3-1) Test for LZ4_USER_MEMORY_FUNCTIONS. 52646e8, #937, #946
(3-2) Same as (3-1), but compile it with c++.
After we'll stabilize CI tests, this test should be split into 3 individual parts for clarity.
[lz4-custom-distance] 025c3ce8f9/.github/workflows/ci.yml (L241-L255)
[lz4-frame] in ci.yml contains the following command
```
make -C tests test-frametest
```
[lz4-fuzzer] in ci.yml contains the following command
```
make -C tests test-fuzzer
```
lz4-platform-macos-latest[1] in ci.yml contains the following test command
```
make # test library build
make test MOREFLAGS='-Werror -Wconversion -Wno-sign-conversion' | tee
```
[1] 025c3ce8f9/.github/workflows/ci.yml (L450)
## Added compilers
- gcc: 4.[4678], 5, 6, 11
- clang: 3.[56789], 4, 5, 12
## Known issue
- make -C tests test-lz4c32
- Fails with all versions of clang. See #991 for details.
- CFLAGS='-O3 -mx32' make -C tests test-lz4c32
- Fails with all versions of clang
- Fails with gcc-11
- `make cxxtest`
- Disabled for now. Will be enabled after #993.
- `make c_standards_c90`, `make c_standards_c11`
- Disabled for now. Will be enabled after #994.
## Difference with `.travis.yml`
The following tests are not included yet.
- name: Compile OSS-Fuzz targets
- name: tag build
The following tests won't be included due to lmitation of the CI environment.
- name: aarch64 real-hw tests
- name: PPC64LE real-hw tests
- name: IBM s390x real-hw tests
Except above, all other features in `.travis.yml` has been included in this change set.
The following post describes details.