Compile issue with configure_options

Hello,

I noticed a strange thing when the --disable-static option is passed to the configure_options in a recipe_type=configure

The PrepareProgram output:

checking whether to build static libraries... no

however the static library has been built. I wonder if ultimately all the options contained in the configure_options are not taken into account. I tried with my knowledge to find the source of the issue unfortunately without success.

My guess is that the program you’re building is simply not honoring the --disable-static flag from autoconf.

Hi lucasvr

This is what I thought when I first encountered this issue during the build of PCRE2 and here is the link of the bug report but it was not possible to reproduce it.

Would it be possible in this case that Arch distribution uses a hook which removes the static file in one way or another?

The thing is that “issue” hit a lot of programs, that why I find it abnormal.

Strange, it works for me:

$ sudo Compile pcre2
...
checking whether to build shared libraries... yes
checking whether to build static libraries... no
...

$ ls /Programs/PCRE2/10.35/lib 
libpcre2-16.so    libpcre2-16.so.0.10.0  libpcre2-32.so.0       libpcre2-8.so    libpcre2-8.so.0.10.0  libpcre2-posix.so.2      pkgconfig
libpcre2-16.so.0  libpcre2-32.so         libpcre2-32.so.0.10.0  libpcre2-8.so.0  libpcre2-posix.so     libpcre2-posix.so.2.0.3

Also, looking in the config.log generated by the configure script I confirm that the default settings (which includes --disable-static) have been used:

$ grep ./configure config.log | head -n1
./configure --prefix=/usr --sysconfdir=/System/Settings --localstatedir=/Data/Variable --mandir=/usr/share/man --libexecdir=/usr/lib/pcre2 --disable-static --enable-pcre2-16 --enable-pcre2-32

Well, so there is a problem on my side, that not good :slightly_frowning_face:

This is really weird. I did a fresh installation of Gobolinux 017 and I have the static built.

Looking in the config.log generated by the configure script the default settings (which includes --disable-static) have been used:

It’s just amazing! Any idea where I should start to debug this issue ?

EDIT:
Well, the first thing obviously was to run all the commands manually and you know what, the static librairies are not built.

So now the thing is clear that there is an issue with Compile, the question is where I should look, or how can I debug the build process during the use of Compile, or any others idea to fix that. :grinning:

EDIT:
In comparison this is what I get with Compile

PCRE2 builds static libs even if you disable them, this has been discovered and discussed before:
https://freenode.logbot.info/gobolinux/20200722#c4470822
https://freenode.logbot.info/gobolinux/20200722#c4472529

I suppose it is a bug in the PCRE2 build system.

As parranoidd mentioned in the irc logs, you could remove the static libs in a pre_install command.

This is not only a PCRE2 issue.
First as I shown before manually building PCRE2 doesn’t produce the static libs.

Now let’s take another library like libtheora built on a fresh Gobolinux 17 installation.

The recipe look like that
Libtheora-Recipe

The result after running Compile show that static libraries has been built:

The result after running a manual configuration and compilation show no static librairies:

1 Like

Well that’s bad.
Maybe it sounds dumb, but did you try adding “double quotes” around the configure options?

configure_options=(
        "--enable-shared"
        "--disable-static"
        "--disable-example"
)

This seems to be the way it’s descibed in the wiki Recipe Format Specification · gobolinux/Documentation Wiki · GitHub.

Just to be sure the arguments are getting parsed correctly.