Mailing List Archive

Compiler issue on github runner for Fixes/32 macOS 11/12
I've been attempting to automate my packaging of macOS Mythfrontend.app
with github actions. Everything works / compiles great on my main
computers running macOS 13 (Ventura).

Unfortunately on the github runners, I keep getting the following compile
error on fixes/32 only. Any suggestions on how to address it?

ccache clang++ -c -pipe -stdlib=libc++ -D_FILE_OFFSET_BITS=64 -DPIC
-std=c++17 -faligned-new -DNDEBUG -O2 -fomit-frame-pointer -fPIC
-DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -msse -pthread
-I/opt/local/include/soundtouch -g -Wall -Wextra -Wpointer-arith
-Wno-constant-logical-operand -Wno-unused-value -Qunused-arguments
-Wimplicit-fallthrough -I/opt/local/include/freetype2
-I/opt/local/include/libpng16 -isystem ../../external/libmythdvdnav/dvdnav
-isystem ../../external/libmythdvdnav/dvdread -std=gnu++1z -arch x86_64
-isysroot /Applications/
Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk
-mmacosx-version-min=10.13 -fPIC -DMMX -DUSING_APPLEREMOTE -D_GNU_SOURCE
-D__STDC_CONSTANT_MACROS -DUSING_VTB -DHAVE_LIBBLURAY -DUSING_LIBCRYPTO
-DUSING_LIBASS -DUSING_OPENGL -DUSING_AIRPLAY -DUSING_MHEG -DUSING_FRONTEND
-DUSING_FFMPEG_THREADS -DUSING_IPTV -DUSING_HDHOMERUN
-DHDHOMERUN_HEADERFILE=\"libhdhomerun/hdhomerun.h\" -DHDHOMERUN_V2
-DUSING_SATIP -DUSING_VBOX -DUSING_CETON -DUSING_BACKEND -DMTV_API
-DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_XML_LIB
-DQT_SQL_LIB -DQT_CORE_LIB -I. -I/opt/local/libexec/qt5/include
-I/opt/local/include/libxml2 -I.. -I../.. -I../.. -I../../external/FFmpeg
-I. -I../libmyth -I../libmyth/audio -I../libmythbase -Impeg -Ichannelscan
-Imheg -Idecoders -Iopengl -Iio -Icaptions -Ivisualisations
-Ivisualisations/opengl -Ivisualisations/vulkan -Ivulkan -Idrm -Ioverlays
-Irecorders -Irecorders/dvbdev -Irecorders/rtp -Irecorders/vbitext
-Irecorders/HLS -I../libmythbase -I../libmythui -I../libmythupnp
-I../libmythservicecontracts -I../../external/libmythdvdnav/dvdnav
-I../../external/libmythdvdnav/dvdread
-I/opt/local/libexec/qt5/lib/QtWidgets.framework/Headers
-I/opt/local/libexec/qt5/lib/QtGui.framework/Headers
-I/opt/local/libexec/qt5/lib/QtNetwork.framework/Headers
-I/opt/local/libexec/qt5/lib/QtXml.framework/Headers
-I/opt/local/libexec/qt5/lib/QtSql.framework/Headers
-I/opt/local/libexec/qt5/lib/QtCore.framework/Headers -Imoc -I/Applications/
Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/OpenGL.framework/Headers
-I/Applications/
Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/AGL.framework/Headers
-I/opt/local/libexec/qt5/mkspecs/macx-clang -F/opt/local/libexec/qt5/lib -o
obj/H2645Parser.o mpeg/H2645Parser.cpp
In file included from mpeg/H2645Parser.cpp:10:
In file included from ../../external/FFmpeg/libavutil/internal.h:107:
../../external/FFmpeg/libavutil/libm.h:430:43: error: static declaration of
'lrint' follows non-static declaration
static av_always_inline av_const long int lrint(double x)
^
/Applications/
Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/math.h:472:17:
note: previous declaration is here
extern long int lrint(double);
^
In file included from mpeg/H2645Parser.cpp:10:
In file included from ../../external/FFmpeg/libavutil/internal.h:107:
../../external/FFmpeg/libavutil/libm.h:444:41: error: static declaration of
'round' follows non-static declaration
static av_always_inline av_const double round(double x)
^
/Applications/
Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/math.h:476:15:
note: previous declaration is here
extern double round(double);
^
In file included from mpeg/H2645Parser.cpp:11:
In file included from ../../external/FFmpeg/libavcodec/golomb.h:36:
../../external/FFmpeg/libavcodec/put_bits.h:199:37: warning: comparison of
integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
../../external/FFmpeg/libavcodec/put_bits.h:237:37: warning: comparison of
integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
../../external/FFmpeg/libavcodec/put_bits.h:289:33: warning: comparison of
integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
3 warnings and 2 errors generated.
make[2]: *** [obj/H2645Parser.o] Error 1
make[1]: *** [sub-libmythtv-make_first] Error 2
make: *** [libs] Error 2
Compiling Mythtv failed
Error: Process completed with exit code 1.
Re: Compiler issue on github runner for Fixes/32 macOS 11/12 [ In reply to ]
On 11/23/22 15:27, John Hoyt wrote:
> I've been attempting to automate my packaging of macOS
> Mythfrontend.app with github actions.  Everything works / compiles
> great on my main computers running macOS 13 (Ventura).
>
> Unfortunately on the github runners, I keep getting the following
> compile error on fixes/32 only.  Any suggestions on how to address it?
>
> ccache clang++ -c -pipe -stdlib=libc++ -D_FILE_OFFSET_BITS=64
> -DPIC -std=c++17 -faligned-new -DNDEBUG -O2 -fomit-frame-pointer
> -fPIC -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -msse -pthread
> -I/opt/local/include/soundtouch -g -Wall -Wextra -Wpointer-arith
> -Wno-constant-logical-operand -Wno-unused-value -Qunused-arguments
> -Wimplicit-fallthrough -I/opt/local/include/freetype2
> -I/opt/local/include/libpng16 -isystem
> ../../external/libmythdvdnav/dvdnav -isystem
> ../../external/libmythdvdnav/dvdread -std=gnu++1z  -arch x86_64
> -isysroot
> /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk
> <http://Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk>
> -mmacosx-version-min=10.13 -fPIC -DMMX -DUSING_APPLEREMOTE
> -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -DUSING_VTB
> -DHAVE_LIBBLURAY -DUSING_LIBCRYPTO -DUSING_LIBASS -DUSING_OPENGL
> -DUSING_AIRPLAY -DUSING_MHEG -DUSING_FRONTEND
> -DUSING_FFMPEG_THREADS -DUSING_IPTV -DUSING_HDHOMERUN
> -DHDHOMERUN_HEADERFILE=\"libhdhomerun/hdhomerun.h\" -DHDHOMERUN_V2
> -DUSING_SATIP -DUSING_VBOX -DUSING_CETON -DUSING_BACKEND -DMTV_API
> -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB
> -DQT_XML_LIB -DQT_SQL_LIB -DQT_CORE_LIB -I.
> -I/opt/local/libexec/qt5/include -I/opt/local/include/libxml2 -I..
> -I../.. -I../.. -I../../external/FFmpeg -I. -I../libmyth
> -I../libmyth/audio -I../libmythbase -Impeg -Ichannelscan -Imheg
> -Idecoders -Iopengl -Iio -Icaptions -Ivisualisations
> -Ivisualisations/opengl -Ivisualisations/vulkan -Ivulkan -Idrm
> -Ioverlays -Irecorders -Irecorders/dvbdev -Irecorders/rtp
> -Irecorders/vbitext -Irecorders/HLS -I../libmythbase
> -I../libmythui -I../libmythupnp -I../libmythservicecontracts
> -I../../external/libmythdvdnav/dvdnav
> -I../../external/libmythdvdnav/dvdread
> -I/opt/local/libexec/qt5/lib/QtWidgets.framework/Headers
> -I/opt/local/libexec/qt5/lib/QtGui.framework/Headers
> -I/opt/local/libexec/qt5/lib/QtNetwork.framework/Headers
> -I/opt/local/libexec/qt5/lib/QtXml.framework/Headers
> -I/opt/local/libexec/qt5/lib/QtSql.framework/Headers
> -I/opt/local/libexec/qt5/lib/QtCore.framework/Headers -Imoc
> -I/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/OpenGL.framework/Headers
> <http://Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/OpenGL.framework/Headers>
> -I/Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/AGL.framework/Headers
> <http://Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/AGL.framework/Headers>
> -I/opt/local/libexec/qt5/mkspecs/macx-clang
> -F/opt/local/libexec/qt5/lib -o obj/H2645Parser.o mpeg/H2645Parser.cpp
> In file included from mpeg/H2645Parser.cpp:10:
> In file included from ../../external/FFmpeg/libavutil/internal.h:107:
> ../../external/FFmpeg/libavutil/libm.h:430:43: error: static
> declaration of 'lrint' follows non-static declaration
> static av_always_inline av_const long int lrint(double x)
>                                           ^
> /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/math.h:472:17
> <http://Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/math.h:472:17>:
> note: previous declaration is here
> extern long int lrint(double);
>                 ^
> In file included from mpeg/H2645Parser.cpp:10:
> In file included from ../../external/FFmpeg/libavutil/internal.h:107:
> ../../external/FFmpeg/libavutil/libm.h:444:41: error: static
> declaration of 'round' follows non-static declaration
> static av_always_inline av_const double round(double x)
>                                         ^
> /Applications/Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/math.h:476:15
> <http://Xcode_13.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/include/math.h:476:15>:
> note: previous declaration is here
> extern double round(double);
>               ^
>

This sounds like configure is failing somehow, but our runs on GitHub
Actions compile fine.

Specifically, config.h should have `#define HAVE_LRINT 1` and `#define
HAVE_ROUND 1`.  I don't know which config.h, ours or FFmpeg's, gets
included when we use internal FFmpeg headers.

I suspect ours gets included and the following lines in our configure
are probably why it fails:
https://github.com/MythTV/mythtv/blob/987da09e83ca80181afdd24a1b457faadd1f2c9f/mythtv/configure#L6067-L6079

```
# test for lrint in math.h
check_exec <<EOF && lrint=yes || lrint=no
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (lrint(3.999f) > 0)?0:1; }
EOF

#test for round()
check_exec <<EOF && round=yes || round=no
#define _ISOC9X_SOURCE  1
#include <math.h>
int main( void ) { return (round(3.999f) > 0)?0:1; }
EOF
```

FFmpeg's configure does not have any similar lines.

Without the outputs from configure, particularly the log file config.ep,
I can't say for certain if those lines are the problem.

> In file included from mpeg/H2645Parser.cpp:11:
> In file included from ../../external/FFmpeg/libavcodec/golomb.h:36:
> ../../external/FFmpeg/libavcodec/put_bits.h:199:37: warning:
> comparison of integers of different signs: 'long' and 'unsigned
> long' [-Wsign-compare]
>         if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
>             ~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~
> ../../external/FFmpeg/libavcodec/put_bits.h:237:37: warning:
> comparison of integers of different signs: 'long' and 'unsigned
> long' [-Wsign-compare]
>         if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
>             ~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~
> ../../external/FFmpeg/libavcodec/put_bits.h:289:33: warning:
> comparison of integers of different signs: 'long' and 'unsigned
> long' [-Wsign-compare]
>     if (s->buf_end - s->buf_ptr >= sizeof(BitBuf)) {
>         ~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~
> 3 warnings and 2 errors generated.
>

We don't use put_bits.h and FFmpeg doesn't use -Wsign-compare, so these
warnings should be ignored.

> make[2]: *** [obj/H2645Parser.o] Error 1
> make[1]: *** [sub-libmythtv-make_first] Error 2
> make: *** [libs] Error 2
>     Compiling Mythtv failed
> Error: Process completed with exit code 1.
>
>

Regards,

Scott Theisen
Re: Compiler issue on github runner for Fixes/32 macOS 11/12 [ In reply to ]
Hi Scott, thanks for taking a look. I've worked up a patch file to
resolve, but it sounds like getting configure working correctly is a better
solution (happy to post the patch file).


> Without the outputs from configure, particularly the log file config.ep, I
> can't say for certain if those lines are the problem.
>

Configure output: https://pastebin.com/gG8E1Fbg
config.ep: https://pastebin.com/b6Tk5M4Q
Re: Compiler issue on github runner for Fixes/32 macOS 11/12 [ In reply to ]
On Wed, Nov 23, 2022 at 6:28 PM John Hoyt <john.hoyt@gmail.com> wrote:

> Hi Scott, thanks for taking a look. I've worked up a patch file to
> resolve, but it sounds like getting configure working correctly is a better
> solution (happy to post the patch file).
>
>
>> Without the outputs from configure, particularly the log file config.ep,
>> I can't say for certain if those lines are the problem.
>>
>
> Configure output: https://pastebin.com/gG8E1Fbg
> config.ep: https://pastebin.com/b6Tk5M4Q
>

BTW - I can now reproduce on a local machine (wife's macbook) running
Monterey. Strangely, all of my Ventura machines do not exhibit the
problem.

Here's the patch I worked up that successfully compiles:

diff --git a/mythtv/external/FFmpeg/libavutil/libm.h
b/mythtv/external/FFmpeg/libavutil/libm.h
index a819962391..71753deff5 100644
--- a/mythtv/external/FFmpeg/libavutil/libm.h
+++ b/mythtv/external/FFmpeg/libavutil/libm.h
@@ -427,21 +427,21 @@ static inline double rint(double x)
#endif /* HAVE_RINT */

#if !HAVE_LRINT
-static av_always_inline av_const long int lrint(double x)
+av_always_inline av_const long int lrint(double x)
{
return rint(x);
}
#endif /* HAVE_LRINT */

#if !HAVE_LRINTF
-static av_always_inline av_const long int lrintf(float x)
+av_always_inline av_const long int lrintf(float x)
{
return (int)(rint(x));
}
#endif /* HAVE_LRINTF */

#if !HAVE_ROUND
-static av_always_inline av_const double round(double x)
+av_always_inline av_const double round(double x)
{
return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5);
}
diff --git a/mythtv/libs/libmyth/audio/audioconvert.cpp
b/mythtv/libs/libmyth/audio/audioconvert.cpp
index 98a2e25c8c..1b7903e599 100644
--- a/mythtv/libs/libmyth/audio/audioconvert.cpp
+++ b/mythtv/libs/libmyth/audio/audioconvert.cpp
@@ -71,7 +71,7 @@ static inline bool sse_check()
#endif //ARCH_x86

#if !HAVE_LRINTF
-static av_always_inline av_const long int lrintf(float x)
+av_always_inline av_const long int lrintf(float x)
{
return (int)(rint(x));
}
Re: Compiler issue on github runner for Fixes/32 macOS 11/12 [ In reply to ]
On 11/23/22 18:37, John Hoyt wrote:
>
>
> On Wed, Nov 23, 2022 at 6:28 PM John Hoyt <john.hoyt@gmail.com> wrote:
>
> Hi Scott, thanks for taking a look.  I've worked up a patch file
> to resolve, but it sounds like getting configure working correctly
> is a better solution (happy to post the patch file).
>
> Without the outputs from configure, particularly the log file
> config.ep, I can't say for certain if those lines are the problem.
>
>
> Configure output: https://pastebin.com/gG8E1Fbg
> config.ep: https://pastebin.com/b6Tk5M4Q
>
>

from config.ep line 5736:
```
dyld[67989]: Library not loaded: '@PREFIX@/lib/libhdhomerun.dylib'
Referenced from:
'/private/var/folders/4c/__l40lp140324rnbz1m2jkgh0000gn/T/ffconf.xBPEc1aO/test'
Reason: tried: '/usr/local/lib/libhdhomerun.dylib' (no such file),
'/usr/lib/libhdhomerun.dylib' (no such file)
```

That looks suspicious to me.  Would that prevent the test from executing?

The resultant config.h files from our configure and FFmpeg's would be
useful to compare.

> BTW - I can now reproduce on a local machine (wife's macbook) running
> Monterey.  Strangely, all of my Ventura machines do not exhibit the
> problem.
>
> Here's the patch I worked up that successfully compiles:
>
> diff --git a/mythtv/external/FFmpeg/libavutil/libm.h
> b/mythtv/external/FFmpeg/libavutil/libm.h
> index a819962391..71753deff5 100644
> --- a/mythtv/external/FFmpeg/libavutil/libm.h
> +++ b/mythtv/external/FFmpeg/libavutil/libm.h
> @@ -427,21 +427,21 @@ static inline double rint(double x)
>  #endif /* HAVE_RINT */
>  #if !HAVE_LRINT
> -static av_always_inline av_const long int lrint(double x)
> +av_always_inline av_const long int lrint(double x)
>  {
>      return rint(x);
>  }
>  #endif /* HAVE_LRINT */
>  #if !HAVE_LRINTF
> -static av_always_inline av_const long int lrintf(float x)
> +av_always_inline av_const long int lrintf(float x)
>  {
>      return (int)(rint(x));
>  }
>  #endif /* HAVE_LRINTF */
>  #if !HAVE_ROUND
> -static av_always_inline av_const double round(double x)
> +av_always_inline av_const double round(double x)
>  {
>      return (x > 0) ? floor(x + 0.5) : ceil(x - 0.5);
>  }
> diff --git a/mythtv/libs/libmyth/audio/audioconvert.cpp
> b/mythtv/libs/libmyth/audio/audioconvert.cpp
> index 98a2e25c8c..1b7903e599 100644
> --- a/mythtv/libs/libmyth/audio/audioconvert.cpp
> +++ b/mythtv/libs/libmyth/audio/audioconvert.cpp
> @@ -71,7 +71,7 @@ static inline bool sse_check()
>  #endif //ARCH_x86
>  #if !HAVE_LRINTF
> -static av_always_inline av_const long int lrintf(float x)
> +av_always_inline av_const long int lrintf(float x)
>  {
>      return (int)(rint(x));
>  }
>
>

I would prefer to fix configure, rather than hack around the error.

Were the HAVE_LRINTF changes necessary?  I don't think they should be.

I think a better solution is to remove the referenced configure lines
and see if that works.  My reasoning is the following:

1. `git grep -nE "math.h" -- :^*/FFmpeg/** :^platform/**` We use
<cmath> not <math.h>, except in external/libexiv2.
2. We never use lrint() `git grep -nE lrint -- :^*/FFmpeg/**` only
lrintf().
* Although, we do use round(), `git grep -nE "[^A-Za-z]round\(" --
:^*/FFmpeg/** :^*/html/**`.
3. We are using C++17, these functions are from C99/C++11.

Regards,

Scott
Re: Compiler issue on github runner for Fixes/32 macOS 11/12 [ In reply to ]
On Wed, Nov 23, 2022 at 7:18 PM Scott Theisen <scott.the.elm@gmail.com>
wrote:

> On 11/23/22 18:37, John Hoyt wrote:
>
> On Wed, Nov 23, 2022 at 6:28 PM John Hoyt <john.hoyt@gmail.com> wrote:
>
>> Hi Scott, thanks for taking a look. I've worked up a patch file to
>> resolve, but it sounds like getting configure working correctly is a better
>> solution (happy to post the patch file).
>>
>>
>>> Without the outputs from configure, particularly the log file config.ep,
>>> I can't say for certain if those lines are the problem.
>>>
>>
>> Configure output: https://pastebin.com/gG8E1Fbg
>> config.ep: https://pastebin.com/b6Tk5M4Q
>>
>
>
> from config.ep line 5736:
> ```
> dyld[67989]: Library not loaded: '@PREFIX@/lib/libhdhomerun.dylib'
> Referenced from:
> '/private/var/folders/4c/__l40lp140324rnbz1m2jkgh0000gn/T/ffconf.xBPEc1aO/test'
> Reason: tried: '/usr/local/lib/libhdhomerun.dylib' (no such file),
> '/usr/lib/libhdhomerun.dylib' (no such file)
> ```
>
> That looks suspicious to me. Would that prevent the test from executing?
>
>
That was the culprit. It appears that configure pretty much stopped
running at this point. Uninstalling hdhome seems to have allowed configure
to complete successfully.

Also, a fix for hdhomerun was pushed to macports last night (Thank you
Craig!!!!). It appears that everything now gets through configure
cleanly. Sorry to send you down the weeds of a package management issue.


> The resultant config.h files from our configure and FFmpeg's would be
> useful to compare.
>

mythtv's config.h is here: https://pastebin.com/xavF0smp
ffmpeg'sconfig.h is here: https://pastebin.com/XprwzBbw
<https://pastebin.com/XprwzBbw>


> I would prefer to fix configure, rather than hack around the error.
>
> Were the HAVE_LRINTF changes necessary? I don't think they should be.
>
> I think a better solution is to remove the referenced configure lines and
> see if that works. My reasoning is the following:
>
>
> 1. `git grep -nE "math.h" -- :^*/FFmpeg/** :^platform/**` We use
> <cmath> not <math.h>, except in external/libexiv2.
> 2. We never use lrint() `git grep -nE lrint -- :^*/FFmpeg/**` only
> lrintf().
> - Although, we do use round(), `git grep -nE "[^A-Za-z]round\(" --
> :^*/FFmpeg/** :^*/html/**`.
> 3. We are using C++17, these functions are from C99/C++11.
>
> Happy to try this but also believe this is probably overcome by the
hdhomerun fix.

Thanks again for the help!
John
Re: Compiler issue on github runner for Fixes/32 macOS 11/12 [ In reply to ]
On 11/24/22 06:46, John Hoyt wrote:
>
>
> On Wed, Nov 23, 2022 at 7:18 PM Scott Theisen
> <scott.the.elm@gmail.com> wrote:
>
> On 11/23/22 18:37, John Hoyt wrote:
>> On Wed, Nov 23, 2022 at 6:28 PM John Hoyt <john.hoyt@gmail.com>
>> wrote:
>>
>> Hi Scott, thanks for taking a look.  I've worked up a patch
>> file to resolve, but it sounds like getting configure working
>> correctly is a better solution (happy to post the patch file).
>>
>> Without the outputs from configure, particularly the log
>> file config.ep, I can't say for certain if those lines
>> are the problem.
>>
>>
>> Configure output: https://pastebin.com/gG8E1Fbg
>> config.ep: https://pastebin.com/b6Tk5M4Q
>>
>>
>
> from config.ep line 5736:
> ```
> dyld[67989]: Library not loaded: '@PREFIX@/lib/libhdhomerun.dylib'
> Referenced from:
> '/private/var/folders/4c/__l40lp140324rnbz1m2jkgh0000gn/T/ffconf.xBPEc1aO/test'
> Reason: tried: '/usr/local/lib/libhdhomerun.dylib' (no such file),
> '/usr/lib/libhdhomerun.dylib' (no such file)
> ```
>
> That looks suspicious to me.  Would that prevent the test from
> executing?
>
>
> That was the culprit.  It appears that configure pretty much stopped
> running at this point.  Uninstalling hdhome seems to have allowed
> configure to complete successfully.
>
> Also, a fix for hdhomerun was pushed to macports last night (Thank you
> Craig!!!!).  It appears that everything now gets through configure
> cleanly.  Sorry to send you down the weeds of a package management issue.

Our GitHub Actions use Homebrew, so if the root cause is a package
management issue, that would be why MythTV's Actions work.

> The resultant config.h files from our configure and FFmpeg's would
> be useful to compare.
>
>
> mythtv's config.h is here: https://pastebin.com/xavF0smp

```
#define HAVE_LRINT 0
...
#define HAVE_ROUND 0
```

If this was from before uninstalling libhdhomerun, it is as I expected,
and all of the other math functions are defined 1.

> ffmpeg'sconfig.h  is here: https://pastebin.com/XprwzBbw
> <https://pastebin.com/XprwzBbw>

"This paste has been deemed potentially harmful."

I assume FFmpeg's config.h defines HAVE_LRINT and HAVE_ROUND to 1, based
on the compile errors.

> I would prefer to fix configure, rather than hack around the error.
>
> Were the HAVE_LRINTF changes necessary?  I don't think they should be.
>
> I think a better solution is to remove the referenced configure
> lines and see if that works.  My reasoning is the following:
>
> 1. `git grep -nE "math.h" -- :^*/FFmpeg/** :^platform/**` We use
> <cmath> not <math.h>, except in external/libexiv2.
> 2. We never use lrint() `git grep -nE lrint -- :^*/FFmpeg/**`
> only lrintf().
> * Although, we do use round(), `git grep -nE
> "[^A-Za-z]round\(" -- :^*/FFmpeg/** :^*/html/**`.
> 3. We are using C++17, these functions are from C99/C++11.
>
> Happy to try this but also believe this is probably overcome by the
> hdhomerun fix.
>

If the updated libhdhomerun package fixes this, you don't need to test
the configure change.

> Thanks again for the help!

No problem.

Regards,

Scott