Re: Mingw task for Cirrus CI

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Mingw task for Cirrus CI
Дата
Msg-id 20220331002618.npsfms3sijof7z7n@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: Mingw task for Cirrus CI  (Melih Mutlu <m.melihmutlu@gmail.com>)
Ответы Re: Mingw task for Cirrus CI
Re: Mingw task for Cirrus CI
Список pgsql-hackers
Hi,

On 2022-03-22 19:00:42 +0300, Melih Mutlu wrote:
> Rebased it.
> I also removed the temp installation task and
> used NoDefaultCurrentDirectoryInExePath env variable instead.

Hm. But you're still using a separate build directory, from what I can see?
The NoDefaultCurrentDirectoryInExePath thing should only have an effect when
not using a separate build directory, no?

Does it work to not use the separate build dir? Without it we don't need the
the "preparing build tree" step, and that's quite slow on mingw:
https://cirrus-ci.com/task/4713509253545984?logs=configure#L392

[00:23:44.371] preparing build tree... done
[00:24:25.429] configure: creating ./config.status


Chatting about this patch with Thomas I started to wonder about other reasons
for the slow speed of configure. I briefly experimented locally, and it looks
like using 'dash' as the shell makes configure run a good bit quicker.


> ---
>  .cirrus.yml | 79 +++++++++++++++++++++++++++++++++++++++++++----------
>  1 file changed, 65 insertions(+), 14 deletions(-)
> 
> diff --git a/.cirrus.yml b/.cirrus.yml
> index e5335fede7..1ed40347cf 100644
> --- a/.cirrus.yml
> +++ b/.cirrus.yml
> @@ -23,7 +23,6 @@ env:
>    CHECKFLAGS: -Otarget
>    PROVE_FLAGS: --timer
>    PGCTLTIMEOUT: 120 # avoids spurious failures during parallel tests
> -  TEMP_CONFIG: ${CIRRUS_WORKING_DIR}/src/tools/ci/pg_ci_base.conf
>    PG_TEST_EXTRA: kerberos ldap ssl

This removes TEMP_CONFIG from all other tasks.  You added it back to the VS
windows task, but not the others? I assume that was accidental?


> +  env:
> +    CCACHE_DIR: C:/msys64/ccache
> +    BUILD_DIR: "%CIRRUS_WORKING_DIR%/build"

I think this should use TEMP_CONFIG too. Is the problem that you need to
change the path?


> +  ccache_cache:
> +    folder: ${CCACHE_DIR}
> +
> +  mingw_info_script:
> +    - C:\msys64\usr\bin\bash.exe -lc "where gcc"
> +    - C:\msys64\usr\bin\bash.exe -lc "gcc --version"
> +    - C:\msys64\usr\bin\bash.exe -lc "where perl"
> +    - C:\msys64\usr\bin\bash.exe -lc "perl --version"
> +
> +  configure_script:
> +    - C:\msys64\usr\bin\bash.exe -lc "mkdir %BUILD_DIR% &&
> +      cd %BUILD_DIR% &&
> +      %CIRRUS_WORKING_DIR%/configure

Could you try using dash to invoke configure here, and whether it makes configure faster?


> +        --host=x86_64-w64-mingw32
> +        --enable-cassert
> +        --enable-tap-tests
> +        --with-icu
> +        --with-libxml
> +        --with-libxslt
> +        --with-lz4
> +        --enable-debug
> +        CC='ccache gcc'
> +        CXX='ccache g++'"

I think this task should specify CFLAGS="-Og", CXXFLAGS="-Og" similar to other
tasks. We end up with -O2 otherwise, which makes the build measurably slower.



> +  tests_script:
> +  - set "NoDefaultCurrentDirectoryInExePath=0"

A comment about why NoDefaultCurrentDirectoryInExePath=0 is used would be
good.


Greetings,

Andres Freund



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: Higher level questions around shared memory stats
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: Removing more vacuumlazy.c special cases, relfrozenxid optimizations