msys2 / MSYS2-packages

Package scripts for MSYS2.
https://packages.msys2.org
BSD 3-Clause "New" or "Revised" License
1.29k stars 486 forks source link

Add aarch64-pc-msys target to msys2-runtime package #4077

Open Blackhex opened 1 year ago

Blackhex commented 1 year ago

This issue serves for tracking progress and documenting issues needed to be overcome while adding aarch64-pc-msys target to msys2-runtime package.

This is a subtask of #3834, for broader discussions, please, head there.

The development is happening in this branch.

Blackhex commented 1 year ago

Issue

make[4]: Entering directory '/c/Projekty/MSYS2-packages/msys2-runtime/src/build-x86_64-pc-msys/x86_64-pc-msys/winsup/cygwin'
  CXX      nlsfuncs.o
In file included from /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:15:
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/local_includes/fhandler.h:423:15: warning: ‘virtual int fhandler_base::init(HANDLE, DWORD, mode_t)’ was hidden [-Woverloaded-virtual=]
  423 |   virtual int init (HANDLE, DWORD, mode_t);
      |               ^~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/local_includes/fhandler.h:1225:7: note:   by ‘int fhandler_pipe::init(HANDLE, DWORD, mode_t, int64_t 
’
 1225 |   int init (HANDLE, DWORD, mode_t, int64_t);
      |       ^~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc: In function ‘int __set_lc_time_from_win(const char*, const lc_time_T*, lc_time_T*, char**, wctomb_p, const char*)’:
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:613:52: error: pointer ‘new_lc_time_buf’ may be used after ‘void* realloc(void*, size_t)’ [-Werror=use-after-free]
  613 |                   lc_time_ptr = tmp + (lc_time_ptr - new_lc_time_buf);
      |                                        ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:605:44: note: call to ‘void* realloc(void*, size_t)’ here
  605 |               char *tmp = (char *) realloc (new_lc_time_buf, len);
      |                                    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:611:39: error: pointer ‘new_lc_time_buf’ may be used after ‘void* realloc(void*, size_t)’ [-Werror=use-after-free]
  611 |                     rebase_locale_buf (_time_locale, _time_locale + 1, tmp,
      |                     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  612 |                                        new_lc_time_buf, lc_time_ptr);
      |                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:605:44: note: call to ‘void* realloc(void*, size_t)’ here
  605 |               char *tmp = (char *) realloc (new_lc_time_buf, len);
      |                                    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:673:23: error: pointer ‘new_lc_time_buf’ may be used after ‘void* realloc(void*, size_t)’ [-Werror=use-after-free]
  673 |     rebase_locale_buf (_time_locale, _time_locale + 1, tmp,
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  674 |                        new_lc_time_buf, lc_time_ptr);
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:666:32: note: call to ‘void* realloc(void*, size_t)’ here
  666 |   char *tmp = (char *) realloc (new_lc_time_buf, lc_time_ptr - new_lc_time_buf);
      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc: In function ‘int __set_lc_ctype_from_win(const char*, const lc_ctype_T*, lc_ctype_T*, char**, wctomb_p, const char*, int)’:
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:745:23: error: pointer ‘new_lc_ctype_buf’ may be used after ‘void* realloc(void*, size_t 
’ [-Werror=use-after-free]
  745 |     rebase_locale_buf (_ctype_locale, _ctype_locale + 1, tmp,
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  746 |                        new_lc_ctype_buf, lc_ctype_ptr);
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:737:32: note: call to ‘void* realloc(void*, size_t)’ here
  737 |   char *tmp = (char *) realloc (new_lc_ctype_buf,
      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~~
  738 |                                 lc_ctype_ptr - new_lc_ctype_buf);
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc: In function ‘int __set_lc_numeric_from_win(const char*, const lc_numeric_T*, lc_numeric_T*, char**, wctomb_p, const char*)’:
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:820:23: error: pointer ‘new_lc_numeric_buf’ may be used after ‘void* realloc(void*, size_t)’ [-Werror=use-after-free]
  820 |     rebase_locale_buf (_numeric_locale, _numeric_locale + 1, tmp,
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  821 |                        new_lc_numeric_buf, lc_numeric_ptr);
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:812:32: note: call to ‘void* realloc(void*, size_t)’ here
  812 |   char *tmp = (char *) realloc (new_lc_numeric_buf,
      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
  813 |                                 lc_numeric_ptr - new_lc_numeric_buf);
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc: In function ‘int __set_lc_monetary_from_win(const char*, const lc_monetary_T*, lc_monetary_T*, char**, wctomb_p, const char*)’:
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:957:23: error: pointer ‘new_lc_monetary_buf’ may be used after ‘void* realloc(void*, size_t)’ [-Werror=use-after-free]
  957 |     rebase_locale_buf (_monetary_locale, _monetary_locale + 1, tmp,
      |     ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  958 |                        new_lc_monetary_buf, lc_monetary_ptr);
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/nlsfuncs.cc:949:32: note: call to ‘void* realloc(void*, size_t)’ here
  949 |   char *tmp = (char *) realloc (new_lc_monetary_buf,
      |                        ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
  950 |                                 lc_monetary_ptr - new_lc_monetary_buf);
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[4]: *** [Makefile:2029: nlsfuncs.o] Error 1

Workaround

Add -Wno-error=use-after-free to the  CXXFLAGS in the PKGBUILD file.

Blackhex commented 1 year ago

Issue

make[2]: Entering directory '/c/Projekty/MSYS2-packages/msys2-runtime/src/build-aarch64-pc-msys/aarch64-pc-msys/newlib'
make "CC_FOR_BUILD=gcc" "CFLAGS=-g -O2 -O0 -pipe -ggdb -DCYGPORT_RELEASE_INFO=3.4.9" "CCASFLAGS=-g -O2 -O0 -pipe -ggdb -DCYGPORT_RELEASE_INFO=3.4.9" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=-g -O2 -O0 -pipe -ggdb -DCYGPORT_RELEASE_INFO=3.4.9" "INSTALL=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g -O2 -O0 -pipe -ggdb -DCYGPORT_RELEASE_INFO=3.4.9" "LIBCFLAGS_FOR_TARGET=-g -O2 -O0 -pipe -ggdb -DCYGPORT_RELEASE_INFO=3.4.9" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS=" "exec_prefix=/usr/aarch64-pc-msys" "infodir=/usr/aarch64-pc-msys/share/info" "libdir=/usr/aarch64-pc-msys/lib" "prefix=/usr/aarch64-pc-msys" "tooldir=/usr/aarch64-pc-msys/aarch64-pc-msys" "top_toollibdir=/usr/aarch64-pc-msys/aarch64-pc-msys/lib" "AR=/usr/lib/gcc/aarch64-pc-msys/14.0.0.r201747.bf177ed816e/../../../../aarch64-pc-msys/bin/ar.exe" "AS=/usr/lib/gcc/aarch64-pc-msys/14.0.0.r201747.bf177ed816e/../../../../aarch64-pc-msys/bin/as.exe" "CC=aarch64-pc-msys-gcc -L/c/Projekty/MSYS2-packages/msys2-runtime/src/build-aarch64-pc-msys/aarch64-pc-msys/winsup/cygwin -isystem /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/include -B/c/Projekty/MSYS2-packages/msys2-runtime/src/build-aarch64-pc-msys/aarch64-pc-msys/newlib/ -isystem /c/Projekty/MSYS2-packages/msys2-runtime/src/build-aarch64-pc-msys/aarch64-pc-msys/newlib/targ-include -isystem /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/libc/include    -I/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/../winsup/cygwin/include" "LD=/usr/lib/gcc/aarch64-pc-msys/14.0.0.r201747.bf177ed816e/../../../../aarch64-pc-msys/bin/ld.exe" "LIBCFLAGS=-g -O2 -O0 -pipe -ggdb -DCYGPORT_RELEASE_INFO=3.4.9" "NM=/usr/lib/gcc/aarch64-pc-msys/14.0.0.r201747.bf177ed816e/../../../../aarch64-pc-msys/bin/nm.exe" "PICFLAG=" "RANLIB=/usr/lib/gcc/aarch64-pc-msys/14.0.0.r201747.bf177ed816e/../../../../aarch64-pc-msys/bin/ranlib.exe" "DESTDIR=" all-am
make[3]: Entering directory '/c/Projekty/MSYS2-packages/msys2-runtime/src/build-aarch64-pc-msys/aarch64-pc-msys/newlib'
  CC       libm/math/libm_a-k_standard.o
In file included from /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/libc/include/sys/config.h:238,
                 from /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/libc/include/_ansi.h:11,
                 from /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/libc/include/sys/reent.h:13,
                 from /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/libc/include/math.h:5,
                 from /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/libm/common/fdlibm.h:15,
                 from /c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/newlib/libm/math/k_standard.c:15:
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/include/cygwin/config.h: In function ‘__getreent’:
/c/Projekty/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/include/cygwin/config.h:42:2: error: #error unimplemented for this target
   42 | #error unimplemented for this target
      |  ^~~~~
make[3]: *** [Makefile:36298: libm/math/libm_a-k_standard.o] Error 1

Solution

TODO