gcc210, gcc211: gcc fails

Carl Eugen Hoyos ceffmpeg at gmail.com
Wed Sep 5 12:09:08 CEST 2018


2018-09-05 11:12 GMT+02:00, Dagobert Michelsen <dam at opencsw.org>:

> Am 05.09.2018 um 00:15 schrieb Carl Eugen Hoyos <ceffmpeg at gmail.com>:
>> Thank you, the remaining issue I currently see is that Solaris 10
>> (gcc210) defaults to /bin/sh which makes running (FFmpeg)
>> configure impossible while the Solaris 11 system (gcc211)
>> defaults to bash making everything much easier.
>>
>> How is a non-root user supposed to overwrite the default shell?
>
> First let me understand what specifically the problem is: the default
> shell is the shell that is invoked when you log in. You can execute
> any shell you want by just executing it, e.g. by typing „bash“.
>
> This is not directly related to what „configure“ does. Configure is
> a shell script that invokes the shell with something like
>   #!/bin/sh
> On Solaris /bin/sh is not bash and this cannot be changed.

But it works fine on Solaris 11, ie all the scripts with shebang
"#!/bin/sh" (and many bashisms) work and both (FFmpeg's)
configure and the (bash-driven) version file creator scripts
and the (bash-driven) self-test scripts work on gcc211 but
not gcc210 where I currently have to edit the shebangs or
I cannot build and test.

> Personally I would consider a configure script that uses
> bashisms defective.

This may be true but it was decided a decade ago that to build
FFmpeg, a bash-compatible shell is necessary (which is even
provided by aix).
Many battles have been fought about this, I believe it does not
make sense to start another one (too many real-life bugs exist
in FFmpeg).

> However, nowadays that many projects assume Unix == Linux
> and therefore sh == bash, so if upstream is unwilling I suggest
> to invoke configure with bash like bash configure —prefix=…

This was always necessary anyway, the issue is now that several
necessary scripts exist in the FFmpeg source apart from configure.

Carl Eugen


More information about the buildfarm mailing list