petalinux project build failing with m4-native-1.4.18-r0 do_compile failed on host Ubuntu 20.04 LTS

While trying to port petalinux 2018.3 project compiling Ubuntu 16 host to Ubuntu 20 host. Following error is occurring

  ERROR: m4-native-1.4.18-r0 do_compile: Function failed: do_compile (log file is located at .
       .
       .
       .
    | gcc   -I. -I../../m4-1.4.18/lib   -isystem/home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/recipe-sysroot-native/usr/include  -isystem/home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/recipe-sysroot-native/usr/include -O2 -pipe -c -o freadahead.o ../../m4-1.4.18/lib/freadahead.c
    | gcc   -I. -I../../m4-1.4.18/lib   -isystem/home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/recipe-sysroot-native/usr/include  -isystem/home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/recipe-sysroot-native/usr/include -O2 -pipe -c -o fseeko.o ../../m4-1.4.18/lib/fseeko.c
    | ../../m4-1.4.18/lib/fseeko.c: In function ‘rpl_fseeko’:
    | ../../m4-1.4.18/lib/fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
    |   110 |   #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
    |       |    ^~~~~
    | ../../m4-1.4.18/lib/freadahead.c: In function ‘freadahead’:
    | ../../m4-1.4.18/lib/freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
    |    92 |  #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
    |       |   ^~~~~
    | make[3]: *** [Makefile:1915: fseeko.o] Error 1
    | make[3]: *** Waiting for unfinished jobs....
    | make[3]: *** [Makefile:1915: freadahead.o] Error 1
    | make[3]: Leaving directory '/home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
    | make[2]: *** [Makefile:1674: all] Error 2
    | make[2]: Leaving directory '/home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
    | make[1]: *** [Makefile:1572: all-recursive] Error 1
    | make[1]: Leaving directory '/home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/build'
    | make: *** [Makefile:1528: all] Error 2
    | ERROR: oe_runmake failed
    | WARNING: exit code 1 from a shell command.
    | ERROR: Function failed: do_compile (log file is located at /home/os-bsp-team/fadil/2018.3/projects/rrh_4.0/RRH_TRX_MULTI_ADI_MULTICH/build/tmp/work/x86_64-linux/m4-native/1.4.18-r0/temp/log.do_compile.1545563)
    ERROR: Task (/home/os-bsp-team/fadil/2018.3/components/yocto/source/aarch64/layers/core/meta/recipes-devtools/m4/m4-native_1.4.18.bb:do_compile) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 894 tasks of which 878 didn't need to be rerun and 1 failed.

By googling found this patch need to be applied http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/meta/recipes-devtools/m4?h=thud&id=95ca077ab871ceff46c2052f324f879a1d624ff4 Can someone please help to figure out this issue and apply this patch in yocto.


You can apply the patch with git like here.

Or you can download the m4-1.4.18-glibc-change-work-around.patch and place it in a files subfolder in meta/recipes-devtools/m4/files and add add the following line to SRC_URI:

SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \
        file://ac_config_links.patch \
        file://remove-gets.patch \
        file://m4-1.4.18-glibc-change-work-around.patch \
        "    

file://m4-1.4.18-glibc-change-work-around.patch in SRC_URI will apply the patch for you.

You can also look for the location of remove-gets.patchand place this patch in the same folder.