Opened 2 months ago

Closed 2 weeks ago

#7479 closed defect (fixed)

MSYS2/MinGW64 install build for libavdevice fails with GCC 8.2.0

Reported by: LigH Owned by:
Priority: normal Component: build system
Version: git-master Keywords: win
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
MSYS2 install build for libavdevice fails with GCC 8.2.0 in MinGW64 (but passes with GCC 7.3.0 in MinGW32)

How to reproduce:
CFLAGS: -mthreads -mtune=generic -O2 -pipe
LDFLAGS: -pipe -static-libgcc -static-libstdc++
make install

CC	libavdevice/alldevices.o
In file included from H:/development/media-autobuild_suite-master/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/include/stddef.h:1,
                 from H:/development/media-autobuild_suite-master/msys64/mingw64/x86_64-w64-mingw32/include/inttypes.h:14,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavutil/common.h:34,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavutil/avutil.h:296,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavutil/samplefmt.h:24,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavcodec/avcodec.h:31,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavformat/avformat.h:319,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavformat/internal.h:27,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavdevice/alldevices.c:23:
./config.h:17:19: error: expected identifier or '(' before 'void'
 #define getenv(x) NULL
                   ^~~~
./config.h:17:19: error: expected ')' before numeric constant
 #define getenv(x) NULL
                   ^~~~
make: *** [/build/ffmpeg-git/ffbuild/common.mak:60: libavdevice/alldevices.o] Error 1

Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.

Change History (5)

comment:1 Changed 2 months ago by LigH

  • Keywords avdevice added

comment:2 Changed 2 months ago by LigH

  • Version changed from unspecified to git-master

comment:3 Changed 2 months ago by LigH

Second run of $ make V=1:

gcc -I. -I/build/ffmpeg-git/ -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 -D__printf__=__gnu_printf__ -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -I/build/ffmpeg-git/compat/atomics/dummy -DZLIB_CONST -DHAVE_AV_CONFIG_H -DBUILDING_avdevice -mthreads -mtune=generic -O2 -pipe   -std=c11 -fomit-frame-pointer  -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -Wno-unused-const-variable -Wno-bool-operation -O3 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto -Wno-maybe-uninitialized  -MMD -MF libavdevice/alldevices.d -MT libavdevice/alldevices.o -c -o libavdevice/alldevices.o /build/ffmpeg-git/libavdevice/alldevices.c
In file included from H:/development/media-autobuild_suite-master/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/8.2.0/include/stddef.h:1,
                 from H:/development/media-autobuild_suite-master/msys64/mingw64/x86_64-w64-mingw32/include/inttypes.h:14,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavutil/common.h:34,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavutil/avutil.h:296,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavutil/samplefmt.h:24,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavcodec/avcodec.h:31,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavformat/avformat.h:319,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavformat/internal.h:27,
                 from H:/development/media-autobuild_suite-master/build/ffmpeg-git/libavdevice/alldevices.c:23:
./config.h:17:19: error: expected identifier or '(' before 'void'
 #define getenv(x) NULL
                   ^~~~
./config.h:17:19: error: expected ')' before numeric constant
 #define getenv(x) NULL
                   ^~~~
make: *** [/build/ffmpeg-git/ffbuild/common.mak:60: libavdevice/alldevices.o] Error 1

(but I can't guarantee a valid result because I usually do not use the shell interactively, instead only in a batch which may have prepared details not available in an interactive shell)

I believe to remember from another patch in another project that GCC 8 expects an explicit cast to (void).

Last edited 2 months ago by LigH (previous) (diff)

comment:4 Changed 2 weeks ago by cehoyos

  • Keywords win added; MSYS2 MinGW64 GCC8 avdevice removed

Please provide your configure line.

comment:5 Changed 2 weeks ago by LigH

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.