Make is failing in aarch64-none-linux-gnu build using ubuntu18 docker. The same shell script properly worked in ubuntu18 virtual machine.
./../src/Emsg.h:35:1: error: unknown type name 'class' class Emsg; ^~~~~./../src/Emsg.h:36:1: error: unknown type name 'class' class Emsgqueue; ^~~~~./../src/Emsg.h:37:1: error: unknown type name 'class' class StringBuilder; ^~~~~./../src/Emsg.h:49:1: error: unknown type name 'class' class Emsg ^~~~~./../src/Emsg.h:50:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^./../src/Emsg.h:80:1: error: unknown type name 'class' class Emsgqueue ^~~~~./../src/Emsg.h:81:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^./../src/Emsg.h:100:1: error: unknown type name 'class' class DbeMessages ^~~~~./../src/Emsg.h:101:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^In file included from mmaptrace.c:32:0:./../src/elf.h:33:1: error: unknown type name 'class' class Symbol; ^~~~~./../src/elf.h:34:1: error: unknown type name 'class' class DbeFile; ^~~~~./../src/elf.h:35:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token template <class ITEM> class Vector; ^./../src/elf.h:36:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token template <typename Key_t, typename Value_t> class Map; ^./../src/elf.h:64:1: error: unknown type name 'class' class Elf : public DbeMessages, public Data_window ^~~~~./../src/elf.h:64:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token class Elf : public DbeMessages, public Data_window ^./../src/elf.h:147:1: error: unknown type name 'class' class ElfReloc ^~~~~./../src/elf.h:148:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token { ^In file included from collector.h:28:0, from mmaptrace.c:38:libcol_util.h:29:0: warning: "NTXT" redefined #define NTXT(x) x In file included from ./../src/util.h:32:0, from ./../src/Data_window.h:31, from ./../src/elf.h:30, from mmaptrace.c:32:./../src/i18n.h:29:0: note: this is the location of the previous definition #define NTXT(x) ((char *) (x)) /* x - string literal not to be i18n-ed */ In file included from collector.h:28:0, from mmaptrace.c:38:libcol_util.h:30:0: warning: "STXT" redefined #define STXT(x) x In file included from ./../src/util.h:32:0, from ./../src/Data_window.h:31, from ./../src/elf.h:30, from mmaptrace.c:32:./../src/i18n.h:28:0: note: this is the location of the previous definition #define STXT(x) ((char *) (x)) /* x - static string literal to be i18n-ed */ mmaptrace.c:417:0: warning: "ELF_ST_BIND" redefined #define ELF_ST_BIND ELF64_ST_BIND In file included from ./../src/elf.h:27:0, from mmaptrace.c:32:./../../include/elf/common.h:1019:0: note: this is the location of the previous definition #define ELF_ST_BIND(val) (((unsigned int)(val)) >> 4) mmaptrace.c:418:0: warning: "ELF_ST_TYPE" redefined #define ELF_ST_TYPE ELF64_ST_TYPE In file included from ./../src/elf.h:27:0, from mmaptrace.c:32:./../../include/elf/common.h:1020:0: note: this is the location of the previous definition #define ELF_ST_TYPE(val) ((val) & 0xF) mmaptrace.c:415:21: error: unknown type name 'Elf64_auxv_t' #define ELF_AUX Elf64_auxv_t ^mmaptrace.c:906:8: note: in expansion of macro 'ELF_AUX' static ELF_AUX *auxv = NULL; ^~~~~~~mmaptrace.c: In function 'process_vsyscall_page':mmaptrace.c:415:21: error: 'Elf64_auxv_t' undeclared (first use in this function); did you mean 'Elf64_Dyn'? #define ELF_AUX Elf64_auxv_t ^mmaptrace.c:953:15: note: in expansion of macro 'ELF_AUX' auxv = (ELF_AUX*) envp; ^~~~~~~mmaptrace.c:415:21: note: each undeclared identifier is reported only once for each function it appears in #define ELF_AUX Elf64_auxv_t ^mmaptrace.c:953:15: note: in expansion of macro 'ELF_AUX' auxv = (ELF_AUX*) envp; ^~~~~~~mmaptrace.c:953:23: error: expected expression before ')' token auxv = (ELF_AUX*) envp; ^mmaptrace.c:957:12: error: 'ap' undeclared (first use in this function); did you mean 'Heap'? ELF_AUX *ap; ^~ Heapmmaptrace.c:411:21: error: unknown type name 'Elf64_Ehdr'; did you mean 'Elf64_Dyn'? #define ELF_EHDR Elf64_Ehdr ^mmaptrace.c:968:3: note: in expansion of macro 'ELF_EHDR' ELF_EHDR *ehdr = NULL; ^~~~~~~~mmaptrace.c:411:21: error: 'Elf64_Ehdr' undeclared (first use in this function); did you mean 'Elf64_Dyn'? #define ELF_EHDR Elf64_Ehdr ^mmaptrace.c:974:12: note: in expansion of macro 'ELF_EHDR' ehdr = (ELF_EHDR*)(intptr_t) ap->a_un.a_val; ^~~~~~~~mmaptrace.c:974:21: error: expected expression before ')' token ehdr = (ELF_EHDR*)(intptr_t) ap->a_un.a_val; ^mmaptrace.c:974:33: error: expected ';' before 'ap' ehdr = (ELF_EHDR*)(intptr_t) ap->a_un.a_val; ^~mmaptrace.c:413:21: error: unknown type name 'Elf64_Shdr'; did you mean 'Elf64_Dyn'? #define ELF_SHDR Elf64_Shdr ^mmaptrace.c:998:7: note: in expansion of macro 'ELF_SHDR' ELF_SHDR *shdr = (ELF_SHDR*) (base + ehdr->e_shoff); ^~~~~~~~mmaptrace.c:413:21: error: 'Elf64_Shdr' undeclared (first use in this function); did you mean 'Elf64_Ehdr'? #define ELF_SHDR Elf64_Shdr ^mmaptrace.c:998:25: note: in expansion of macro 'ELF_SHDR' ELF_SHDR *shdr = (ELF_SHDR*) (base + ehdr->e_shoff); ^~~~~~~~mmaptrace.c:998:34: error: expected expression before ')' token ELF_SHDR *shdr = (ELF_SHDR*) (base + ehdr->e_shoff); ^mmaptrace.c:1046:27: error: request for member 'e_shnum' in something not a structure or union for (i = 1; i < ehdr->e_shnum; i++) ^~mmaptrace.c:1047:13: error: request for member 'sh_type' in something not a structure or union if (shdr[i].sh_type == SHT_DYNSYM) ^mmaptrace.c:1054:44: error: request for member 'sh_link' in something not a structure or union char *symbase = base + shdr[shdr[dynSec].sh_link].sh_offset; ^mmaptrace.c:416:21: error: unknown type name 'Elf64_Sym'; did you mean 'Elf64_Dyn'? #define ELF_SYM Elf64_Sym ^mmaptrace.c:1055:4: note: in expansion of macro 'ELF_SYM' ELF_SYM *symbols = (ELF_SYM*) (base + shdr[dynSec].sh_offset); ^~~~~~~mmaptrace.c:416:21: error: 'Elf64_Sym' undeclared (first use in this function); did you mean 'Elf64_Dyn'? #define ELF_SYM Elf64_Sym ^mmaptrace.c:1055:24: note: in expansion of macro 'ELF_SYM' ELF_SYM *symbols = (ELF_SYM*) (base + shdr[dynSec].sh_offset); ^~~~~~~mmaptrace.c:1055:32: error: expected expression before ')' token ELF_SYM *symbols = (ELF_SYM*) (base + shdr[dynSec].sh_offset); ^mmaptrace.c:1057:24: error: request for member 'sh_size' in something not a structure or union int n = shdr[dynSec].sh_size / shdr[dynSec].sh_entsize; ^mmaptrace.c:1057:47: error: request for member 'sh_entsize' in something not a structure or union int n = shdr[dynSec].sh_size / shdr[dynSec].sh_entsize; ^mmaptrace.c:1060:17: error: 'sym' undeclared (first use in this function); did you mean 'sync'? ELF_SYM *sym = symbols + i; ^~~ syncIn file included from ./../src/elf.h:27:0, from mmaptrace.c:32:./../../include/elf/common.h:1028:24: warning: implicit declaration of function 'ELF_ST_BIND' [-Wimplicit-function-declaration] #define ELF64_ST_BIND ELF_ST_BIND ^mmaptrace.c:417:21: note: in expansion of macro 'ELF64_ST_BIND' #define ELF_ST_BIND ELF64_ST_BIND ^~~~~~~~~~~~~mmaptrace.c:1072:5: note: in expansion of macro 'ELF_ST_BIND' ELF_ST_BIND (sym->st_info) != STB_GLOBAL || ELF_ST_TYPE (sym->st_info) != STT_FUNC) ^~~~~~~~~~~./../../include/elf/common.h:1029:24: warning: implicit declaration of function 'ELF_ST_TYPE' [-Wimplicit-function-declaration] #define ELF64_ST_TYPE ELF_ST_TYPE ^mmaptrace.c:418:21: note: in expansion of macro 'ELF64_ST_TYPE' #define ELF_ST_TYPE ELF64_ST_TYPE ^~~~~~~~~~~~~mmaptrace.c:1072:49: note: in expansion of macro 'ELF_ST_TYPE' ELF_ST_BIND (sym->st_info) != STB_GLOBAL || ELF_ST_TYPE (sym->st_info) != STT_FUNC) ^~~~~~~~~~~mmaptrace.c:1085:39: error: request for member 'sh_offset' in something not a structure or union char *bgn = base + shdr[curSec].sh_offset; ^mmaptrace.c:1086:38: error: request for member 'sh_size' in something not a structure or union char *end = bgn + shdr[curSec].sh_size; ^mmaptrace.c:1135:35: error: request for member 'sh_offset' in something not a structure or union (void*) (base + shdr[curSec].sh_offset), shdr[curSec].sh_size, 0, NULL); ^mmaptrace.c:1135:60: error: request for member 'sh_size' in something not a structure or union (void*) (base + shdr[curSec].sh_offset), shdr[curSec].sh_size, 0, NULL); ^mmaptrace.c:1144:68: error: request for member 'sh_offset' in something not a structure or union sysfuncvaddr[nvsysfuncs] = (unsigned long) (base + shdr[curSec].sh_offset); ^mmaptrace.c:1145:60: error: request for member 'sh_size' in something not a structure or union sysfuncsize[nvsysfuncs] = (unsigned long) (shdr[curSec].sh_size); ^Makefile:653: recipe for target 'libgp_collector_la-mmaptrace.lo' failedmake[5]: *** [libgp_collector_la-mmaptrace.lo] Error 1make[5]: Leaving directory '/workspace/build/src/ARM-GDB/gprofng/libcollector'Makefile:479: recipe for target 'all' failedmake[4]: *** [all] Error 2make[4]: Leaving directory '/workspace/build/src/ARM-GDB/gprofng/libcollector'Makefile:472: recipe for target 'all-recursive' failedmake[3]: *** [all-recursive] Error 1make[3]: Leaving directory '/workspace/build/src/ARM-GDB/gprofng'Makefile:404: recipe for target 'all' failedmake[2]: *** [all] Error 2make[2]: Leaving directory '/workspace/build/src/ARM-GDB/gprofng'Makefile:7435: recipe for target 'all-gprofng' failedmake[1]: *** [all-gprofng] Error 2make[1]: Leaving directory '/workspace/build/src/ARM-GDB'Makefile:1004: recipe for target 'all' failedmake: *** [all] Error 2Failed on line: 36 at command: make