[vlc-devel] [PATCH 1/2] package: macosx: forward ac_cv symbols to $@

David Fuhrmann david.fuhrmann at gmail.com
Sun Feb 21 12:41:10 UTC 2021



> Am 21.02.2021 um 13:22 schrieb Alexandre Janniaux <ajanni at videolabs.io>:
> 
> Hi,
> 
> On Sun, Feb 21, 2021 at 07:58:59AM +0100, david.fuhrmann at gmail.com <mailto:david.fuhrmann at gmail.com> wrote:
>> 
>> 
>>> Am 20.02.2021 um 10:21 schrieb Alexandre Janniaux <ajanni at videolabs.io>:
>>> 
>>> ´╗┐configure will store the command used when reconfiguring as long as the
>>> ac_cv_ variables are passed as parameter to the configure execution
>>> instead of being an environment variable.
>>> 
>>> So as to stay compatible with other clients of this script, use export
>>> as default command when no argument is given to keep the previous
>>> behaviour.
>>> ---
>>> extras/package/macosx/env.build.sh | 54 +++++++++++++++++-------------
>>> 1 file changed, 30 insertions(+), 24 deletions(-)
>>> 
>>> diff --git a/extras/package/macosx/env.build.sh b/extras/package/macosx/env.build.sh
>>> index ef1316465a..fd2f219a29 100755
>>> --- a/extras/package/macosx/env.build.sh
>>> +++ b/extras/package/macosx/env.build.sh
>>> @@ -77,36 +77,42 @@ vlcSetBaseEnvironment() {
>>> }
>>> 
>>> vlcSetSymbolEnvironment() {
>>> +    ARGS=( "$@" )
>>> +    if [ "$#" -lt 2 ]; then
>>> +        ARGS+=( export )
>>> +    fi
>> 
>> Hi, I do not really understand this logic here: why do you care about the arguments of the overall bash script when you are constructing the export line below?
>> 
>> I think you should rather use a local parameter for this function to decide whether to use export or not. Or just return the list below here, and take care about export or no export in a different place...
>> 
> 
> This patch is wrong as-is (ARGS not used, -lt 2 should be -lt 1),
> I'll send a fixed version later with more comments.
> 
> The logic behind ARGS is just to keep the previous behaviour right,
> it can be removed later once every callsite would have been fixed.
> This is because I didn't test on macosx, and to be fair I tested on
> iOS but probably completely messed up the actual testing since it
> wouldn't even work, I'm not sure how it resulted in a correct build
> back then.
> 
> The core idea of this change is to not use export anymore, and be
> sure the configuration we are using is kept for later build, mostly
> because I usually use make to build and it breaks when there is a
> reconf and some files depending on the function where the detection
> is overriden here is recompiled. As a side-effect, since I've
> integrated the current buildsystem in some XCode project generation
> tool, which will be using make, it prevents compilation from this
> XCode project to fail randomly when it triggers a reconfiguration.

Yes, I understood the general purpose of this patch, and if this works it would be very cool, indeed. :-)
I just did not understand at all, why you need to use $@ and $# in this context.

> 
> 
>>>    echo "Setting symbol environment"
>>> 
>>>    # The following symbols do not exist on the minimal macOS / iOS, so they are disabled
>>>    # here. This allows compilation also with newer macOS SDKs.
>>>    # List assumes macOS 10.10 / iOS 8 at minimum.
>>> 
>>> -    # Added symbols in macOS 10.12 / iOS 10 / watchOS 3
>>> -    export ac_cv_func_basename_r=no
>>> -    export ac_cv_func_clock_getres=no
>>> -    export ac_cv_func_clock_gettime=no
>>> -    export ac_cv_func_clock_settime=no
>>> -    export ac_cv_func_dirname_r=no
>>> -    export ac_cv_func_getentropy=no
>>> -    export ac_cv_func_mkostemp=no
>>> -    export ac_cv_func_mkostemps=no
>>> -    export ac_cv_func_timingsafe_bcmp=no
>>> -
>>> -    # Added symbols in macOS 10.13 / iOS 11 / watchOS 4 / tvOS 11
>>> -    export ac_cv_func_open_wmemstream=no
>>> -    export ac_cv_func_fmemopen=no
>>> -    export ac_cv_func_open_memstream=no
>>> -    export ac_cv_func_futimens=no
>>> -    export ac_cv_func_utimensat=no
>>> -
>>> -    # Added symbol in macOS 10.14 / iOS 12 / tvOS 9
>>> -    export ac_cv_func_thread_get_register_pointer_values=no
>>> -
>>> -    # Added symbols in macOS 10.15 / iOS 13 / tvOS 13
>>> -    export ac_cv_func_aligned_alloc=no
>>> -    export ac_cv_func_timespec_get=no
>>> +    # - Added symbols in macOS 10.12 / iOS 10 / watchOS 3
>>> +    # - Added symbols in macOS 10.13 / iOS 11 / watchOS 4 / tvOS 11
>>> +    # - Added symbol in macOS 10.14 / iOS 12 / tvOS 9
>>> +    # - Added symbols in macOS 10.15 / iOS 13 / tvOS 13
>>> +    "$@" \
>>> +    \
>>> +    ac_cv_func_basename_r=no \
>>> +    ac_cv_func_clock_getres=no \
>>> +    ac_cv_func_clock_gettime=no \
>>> +    ac_cv_func_clock_settime=no \
>>> +    ac_cv_func_dirname_r=no \
>>> +    ac_cv_func_getentropy=no \
>>> +    ac_cv_func_mkostemp=no \
>>> +    ac_cv_func_mkostemps=no \
>>> +    ac_cv_func_timingsafe_bcmp=no \
>>> +    \
>>> +    ac_cv_func_open_wmemstream=no \
>>> +    ac_cv_func_fmemopen=no \
>>> +    ac_cv_func_open_memstream=no \
>>> +    ac_cv_func_futimens=no \
>>> +    ac_cv_func_utimensat=no \
>>> +    \
>>> +    ac_cv_func_thread_get_register_pointer_values=no \
>>> +    \
>>> +    ac_cv_func_aligned_alloc=no \
>>> +    ac_cv_func_timespec_get=no
>>> }
>>> 
>>> vlcSetContribEnvironment() {
>>> --
>>> 2.28.0
>>> 
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel <https://mailman.videolan.org/listinfo/vlc-devel>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel <https://mailman.videolan.org/listinfo/vlc-devel>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20210221/ab2c7d24/attachment.html>


More information about the vlc-devel mailing list