Hi, I've tried to build 12-stable r358547 for MIPS using mips-gcc9-9.2.0 (gcc 6.5.0 is available but out of date and probably will be removed from ports tree in some future). 12-stable can't be compiled with such gcc version right now, so here is a list of errors and patches taken from HEAD that helped me to do build it. This is in case someone wants to do the same at least: - The first build error was: jemalloc_malloc_io.c: In function '__je_malloc_vsnprintf': jemalloc_malloc_io.c:383:2: error: case label value exceeds maximum value for type [-Werror] 383 | case '?' | 0x80: \ | ^~~~ jemalloc_malloc_io.c:595:5: note: in expansion of macro 'GET_ARG_NUMERIC' 595 | GET_ARG_NUMERIC(val, 'p'); | ^~~~~~~~~~~~~~~ jemalloc_malloc_io.c:401:2: error: case label value exceeds maximum value for type [-Werror] 401 | case 'j' | 0x80: \ | ^~~~ jemalloc_malloc_io.c:595:5: note: in expansion of macro 'GET_ARG_NUMERIC' 595 | GET_ARG_NUMERIC(val, 'p'); | ^~~~~~~~~~~~~~~ jemalloc_malloc_io.c:389:2: error: case label value exceeds maximum value for type [-Werror] 389 | case 'l' | 0x80: \ | ^~~~ jemalloc_malloc_io.c:595:5: note: in expansion of macro 'GET_ARG_NUMERIC' 595 | GET_ARG_NUMERIC(val, 'p'); | ^~~~~~~~~~~~~~~ jemalloc_malloc_io.c:395:2: error: case label value exceeds maximum value for type [-Werror] 395 | case 'q' | 0x80: \ | ^~~~ jemalloc_malloc_io.c:595:5: note: in expansion of macro 'GET_ARG_NUMERIC' 595 | GET_ARG_NUMERIC(val, 'p'); | ^~~~~~~~~~~~~~~ jemalloc_malloc_io.c:410:2: error: case label value exceeds maximum value for type [-Werror] 410 | case 'z' | 0x80: \ | ^~~~ jemalloc_malloc_io.c:595:5: note: in expansion of macro 'GET_ARG_NUMERIC' 595 | GET_ARG_NUMERIC(val, 'p'); | ^~~~~~~~~~~~~~~ cc1: all warnings being treated as errors --- jemalloc_malloc_io.o --- *** [jemalloc_malloc_io.o] Error code 1 make[4]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libc 1 error Fix from HEAD https://svnweb.freebsd.org/base?view=revision&revision=355975 - The second error was: ===> lib/libalias/modules/nbt (all) /usr/home/pavel.timofeev/mips/12/sys/netinet/libalias/alias_nbt.c: In function 'protohandler2out': /usr/home/pavel.timofeev/mips/12/sys/netinet/libalias/alias_nbt.c:127:48: error: taking address of packed member of 'struct ip' may result in an unaligned pointer value [-Werror=address-of-packed-member] 127 | return (AliasHandleUdpNbtNS(la, pip, ah->lnk, &pip->ip_src, ah->sport, | ^~~~~~~~~~~~ cc1: all warnings being treated as errors --- alias_nbt.o --- *** [alias_nbt.o] Error code 1 make[7]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libalias/modules/nbt 1 error make[7]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libalias/modules/nbt --- all_subdir_lib/libalias/modules/nbt --- *** [all_subdir_lib/libalias/modules/nbt] Error code 2 make[6]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libalias/modules 1 error make[6]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libalias/modules --- all_subdir_lib/libalias/modules --- *** [all_subdir_lib/libalias/modules] Error code 2 make[5]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libalias 1 error make[5]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libalias --- all_subdir_lib/libalias --- *** [all_subdir_lib/libalias] Error code 2 make[4]: stopped in /usr/home/pavel.timofeev/mips/12/lib 1 error make[4]: stopped in /usr/home/pavel.timofeev/mips/12/lib --- lib__L --- *** [lib__L] Error code 2 make[3]: stopped in /usr/home/pavel.timofeev/mips/12 A failure has been detected in another branch of the parallel make make[4]: stopped in /usr/home/pavel.timofeev/mips/12/sbin/ipf/libipf --- sbin/ipf/libipf__L --- *** [sbin/ipf/libipf__L] Error code 2 make[3]: stopped in /usr/home/pavel.timofeev/mips/12 2 errors Applying this commit from HEAD helped https://svnweb.freebsd.org/base?view=revision&revision=355971 - Third error was: ===> lib/libdevdctl (all) In file included from /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/consumer.cc:55: /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/event.h: In member function 'DevdCtl::Guid DevdCtl::ZfsEvent::PoolGUID() const': /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/event.h:413:20: error: implicitly-declared 'constexpr DevdCtl::Guid::Guid(const DevdCtl::Guid&)' is deprecated [-Werror=deprecated-copy] 413 | return (m_poolGUID); | ^ In file included from /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/consumer.cc:54: /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/guid.h:114:1: note: because 'DevdCtl::Guid' has user-provided 'DevdCtl::Guid& DevdCtl::Guid::operator=(const DevdCtl::Guid&)' 114 | Guid::operator=(const Guid &rhs) | ^~~~ In file included from /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/consumer.cc:55: /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/event.h: In member function 'DevdCtl::Guid DevdCtl::ZfsEvent::VdevGUID() const': /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/event.h:419:20: error: implicitly-declared 'constexpr DevdCtl::Guid::Guid(const DevdCtl::Guid&)' is deprecated [-Werror=deprecated-copy] 419 | return (m_vdevGUID); | ^ In file included from /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/consumer.cc:54: /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/guid.h:114:1: note: because 'DevdCtl::Guid' has user-provided 'DevdCtl::Guid& DevdCtl::Guid::operator=(const DevdCtl::Guid&)' 114 | Guid::operator=(const Guid &rhs) | ^~~~ In file included from /usr/home/pavel.timofeev/mips/obj/mips_ap/usr/home/pavel.timofeev/mips/12/mips.mips/tmp/usr/include/c++/v1/memory:667, from /usr/home/pavel.timofeev/mips/obj/mips_ap/usr/home/pavel.timofeev/mips/12/mips.mips/tmp/usr/include/c++/v1/list:183, from /usr/home/pavel.timofeev/mips/12/lib/libdevdctl/consumer.cc:50: /usr/home/pavel.timofeev/mips/obj/mips_ap/usr/home/pavel.timofeev/mips/12/mips.mips/tmp/usr/include/c++/v1/atomic: At global scope: /usr/home/pavel.timofeev/mips/obj/mips_ap/usr/home/pavel.timofeev/mips/12/mips.mips/tmp/usr/include/c++/v1/atomic:726:6: warning: always_inline function might not be inlinable [-Wattributes] 726 | void __cxx_atomic_store(__cxx_atomic_base_impl<_Tp>* __a, _Tp __val, | ^~~~~~~~~~~~~~~~~~ /usr/home/pavel.timofeev/mips/obj/mips_ap/usr/home/pavel.timofeev/mips/12/mips.mips/tmp/usr/include/c++/v1/atomic:718:6: warning: always_inline function might not be inlinable [-Wattributes] 718 | void __cxx_atomic_store(volatile __cxx_atomic_base_impl<_Tp>* __a, _Tp __val, | ^~~~~~~~~~~~~~~~~~ /usr/home/pavel.timofeev/mips/obj/mips_ap/usr/home/pavel.timofeev/mips/12/mips.mips/tmp/usr/include/c++/v1/atomic:763:5: warning: always_inline function might not be inlinable [-Wattributes] 763 | _Tp __cxx_atomic_exchange(__cxx_atomic_base_impl<_Tp>* __a, _Tp __value, | ^~~~~~~~~~~~~~~~~~~~~ /usr/home/pavel.timofeev/mips/obj/mips_ap/usr/home/pavel.timofeev/mips/12/mips.mips/tmp/usr/include/c++/v1/atomic:753:5: warning: always_inline function might not be inlinable [-Wattributes] 753 | _Tp __cxx_atomic_exchange(volatile __cxx_atomic_base_impl<_Tp>* __a, | ^~~~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors --- consumer.o --- *** [consumer.o] Error code 1 make[5]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libdevdctl 1 error make[5]: stopped in /usr/home/pavel.timofeev/mips/12/lib/libdevdctl --- all_subdir_lib/libdevdctl --- *** [all_subdir_lib/libdevdctl] Error code 2 The fix is from HEAD https://svnweb.freebsd.org/base?view=revision&revision=355974 - Fourth error was: /usr/home/pavel.timofeev/mips/12/sbin/camcontrol/camcontrol.c: In function 'ataidentify': /usr/home/pavel.timofeev/mips/12/sbin/camcontrol/camcontrol.c:2377:45: error: converting a packed 'struct ata_params' pointer (alignment 1) to a 'uint16_t' {aka 'short unsigned int'} pointer (alignment 2) may re sult in an unaligned pointer value [-Werror=address-of-packed-member] 2377 | dump_data((void*)ident_buf, sizeof(struct ata_params)); | ^~~~~~~~~~ In file included from /usr/home/pavel.timofeev/mips/12/sys/cam/ata/ata_all.h:34, from /usr/home/pavel.timofeev/mips/12/sys/cam/cam_ccb.h:45, from /usr/home/pavel.timofeev/mips/12/sbin/camcontrol/camcontrol.c:56: /usr/home/pavel.timofeev/mips/12/sys/sys/ata.h:37:8: note: defined here 37 | struct ata_params { | ^~~~~~~~~~ /usr/home/pavel.timofeev/mips/12/sbin/camcontrol/camcontrol.c: In function 'atasecurity_notify': /usr/home/pavel.timofeev/mips/12/sbin/camcontrol/camcontrol.c:2486:38: warning: argument to 'sizeof' in 'strncpy' call is the same expression as the source; did you mean to use the size of the destination? [-Wsi zeof-pointer-memaccess] 2486 | strncpy(pass, pwd->password, sizeof(pwd->password)); | ^ cc1: all warnings being treated as errors --- camcontrol.o --- *** [camcontrol.o] Error code 1 make[6]: stopped in /usr/home/pavel.timofeev/mips/12/sbin/camcontrol 1 error make[6]: stopped in /usr/home/pavel.timofeev/mips/12/sbin/camcontrol --- camcontrol_make --- *** [camcontrol_make] Error code 2 Fix from HEAD https://svnweb.freebsd.org/base?view=revision&revision=355972 - Fifth error: ===> usr.sbin/pw (all) [35/1784] /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw.c:30:19: warning: 'rcsid' defined but not used [-Wunused-const-variable=] 30 | static const char rcsid[] | ^~~~~ /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_conf.c:30:19: warning: 'rcsid' defined but not used [-Wunused-const-variable=] 30 | static const char rcsid[] | ^~~~~ /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_conf.c: In function 'write_userconfig': /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_conf.c:420:38: warning: '/pw.conf' directive output may be truncated writing 8 bytes into a region of size between 1 and 1024 [-Wformat-truncation=] 420 | snprintf(cfgfile, sizeof(cfgfile), "%s/" _PW_CONF, | ^~~~~ /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_conf.c:420:41: note: format string is defined here 420 | snprintf(cfgfile, sizeof(cfgfile), "%s/" _PW_CONF, /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_conf.c:420:3: note: 'snprintf' output between 9 and 1032 bytes into a destination of size 1024 420 | snprintf(cfgfile, sizeof(cfgfile), "%s/" _PW_CONF, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | conf.etcpath); | ~~~~~~~~~~~~~ /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_user.c: In function 'print_user': /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_user.c:590:2: error: this 'if' clause does not guard... [-Werror=misleading-indentation] 590 | if (pwd->pw_expire > (time_t)0 && (tptr localtime(&pwd->pw_expire)) != NULL) | ^~ /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_user.c:592:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 592 | if (pwd->pw_change > (time_t)0 && (tptr localtime(&pwd->pw_change)) != NULL) | ^~ At top level: /usr/home/pavel.timofeev/mips/12/usr.sbin/pw/pw_user.c:31:19: warning: 'rcsid' defined but not used [-Wunused-const-variable=] 31 | static const char rcsid[] | ^~~~~ /usr/home/pavel.timofeev/mips/12/contrib/bmake/dir.c: In function 'Dir_FindHereOrAbove': /usr/home/pavel.timofeev/mips/12/contrib/bmake/dir.c:1455:36: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=] 1455 | snprintf(try, sizeof(try), "%s/%s", dirbase, search_path); | ^ /usr/home/pavel.timofeev/mips/12/contrib/bmake/dir.c:1455:3: note: 'snprintf' output 2 or more bytes (assuming 1026) into a destination of size 1025 1455 | snprintf(try, sizeof(try), "%s/%s", dirbase, search_path); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors --- pw_user.o --- *** [pw_user.o] Error code 1 make[4]: stopped in /usr/home/pavel.timofeev/mips/12/usr.sbin/pw 1 error The fix from HEAD https://svnweb.freebsd.org/base?view=revision&revision=348282 - Sixth error /usr/home/pavel.timofeev/mips/12/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c: In function 'ar5210GetTxDescLinkPtr': /usr/home/pavel.timofeev/mips/12/sys/dev/ath/ath_hal/ar5210/ar5210_xmit.c:671:13: error: taking address of packed member of 'struct ar5210_desc' may result in an unaligned pointer value [-Werror=address-of-packe d-member] 671 | *linkptr = &ads->ds_link; | ^~~~~~~~~~~~~ cc1: all warnings being treated as errors --- ar5210_xmit.o --- *** [ar5210_xmit.o] Error code 1 make[4]: stopped in /usr/home/pavel.timofeev/mips/12/sys/modules/ath_hal_ar5210 1 error Fix from HEAD https://svnweb.freebsd.org/base?view=revision&revision=355970 I do not know the policy about GCC architectures, but it would be great to make them buildable with GCC version up to date.