Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Blackhex opened this issue Sep 21, 2023 · 2 comments
Open

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

Blackhex opened this issue Sep 21, 2023 · 2 comments

Comments

@Blackhex
Copy link

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
Copy link
Author

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
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant