Hmm, which version of clang do you have? are you up-to-date with XCode?

$ cc --version
Apple clang version 13.1.6 (clang-1316.0.21.2.3)
Target: arm64-apple-darwin21.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Cedric

On 22.04.22 09:10, Heinz Junkes wrote:
I'm going to slip into the thread here.

I could successfully build rtems6 for arm on the M1 Mac yesterday evening.

git clone https://github.com/RTEMS/rtems-source-builder.git rsb
cd rsb
cd rtems
../source-builder/sb-set-builder --jobs=4 --prefix=${RTEMS_ROOT} 
${RTEMS_VERSION}/rtems-arm


One problem I encountered was the building of the qemu (devel/qemu) on the Mac 
(Monterey, 12.3.1 ):

RTEMS Source Builder - Set Builder, 6 (49e3dac17765)
  Command Line: ../source-builder/sb-set-builder --jobs=4 
--prefix=/Users/heinz/VE/ARM_WORK/rtems/6 devel/qemu
  Python: 3.8.5 (default, Sep  4 2020, 02:22:02) [Clang 10.0.0 ]
Build Set: devel/qemu
Build Set: devel/autotools-internal.bset
config: devel/autoconf-2.69-1.cfg
package: autoconf-2.69-x86_64-apple-darwin21.4.0-1
….
/bin/sh ../libtool  --tag=CC   --mode=link /usr/bin/cc -O2 -pipe 
-fbracket-depth=1024 
-I/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/include
  -g -O2  -no-undefined  -liconv ../intl/libintl.la -liconv  -Wl,-framework 
-Wl,CoreFoundation  -lunistring  -Wl,-framework -Wl,CoreFoundation -release 
0.18.3  -lcroco-0.6 
-L/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib
 -lglib-2.0 
-L/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib
 -lintl -liconv -lc 
-R/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib
 
-L/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib
 -lglib-2.0 
-L/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib
 -lintl -liconv -lc 
-R/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib
 -lxml2 -liconv -liconv -liconv -lncurses 
-L/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib
 -o libgettextlib.la -rpath /Users/heinz/VE/ARM_WORK/rtems/6/lib copy-acl.lo 
set-acl.lo allocator.lo areadlink.lo argmatch.lo gl_array_list.lo backupfile.lo 
addext.lo basename.lo binary-io.lo c-ctype.lo c-strcasecmp.lo c-strncasecmp.lo 
c-strcasestr.lo c-strstr.lo careadlinkat.lo classpath.lo clean-temp.lo 
cloexec.lo closeout.lo concat-filename.lo copy-file.lo csharpcomp.lo 
csharpexec.lo error-progname.lo execute.lo exitfail.lo fatal-signal.lo 
fd-hook.lo fd-ostream.lo fd-safer-flag.lo dup-safer-flag.lo file-ostream.lo 
findprog.lo fstrcmp.lo full-write.lo fwriteerror.lo gcd.lo  hash.lo 
html-ostream.lo html-styled-ostream.lo  javacomp.lo javaexec.lo javaversion.lo 
gl_linkedhash_list.lo gl_list.lo localcharset.lo localename.lo glthread/lock.lo 
malloca.lo mbchar.lo mbiter.lo mbslen.lo mbsstr.lo mbswidth.lo mbuiter.lo 
ostream.lo pipe-filter-ii.lo pipe-filter-aux.lo pipe2.lo pipe2-safer.lo 
progname.lo propername.lo acl-errno-valid.lo file-has-acl.lo qcopy-acl.lo 
qset-acl.lo quotearg.lo safe-read.lo safe-write.lo sh-quote.lo sig-handler.lo 
spawn-pipe.lo striconv.lo striconveh.lo striconveha.lo strnlen1.lo 
styled-ostream.lo tempname.lo term-ostream.lo term-styled-ostream.lo  
glthread/threadlib.lo glthread/tls.lo tmpdir.lo trim.lo  unilbrk/lbrktables.lo  
 unilbrk/ulc-common.lo   unistd.lo dup-safer.lo fd-safer.lo pipe-safer.lo       
   wait-process.lo wctype-h.lo xmalloc.lo xstrdup.lo xconcat-filename.lo 
xerror.lo gl_xlist.lo xmalloca.lo xreadlink.lo xsetenv.lo xsize.lo xstriconv.lo 
xstriconveh.lo xvasprintf.lo xasprintf.lo acl_entries.lo asnprintf.lo 
canonicalize-lgpl.lo error.lo fnmatch.lo getopt.lo getopt1.lo lstat.lo 
obstack.lo open.lo printf-args.lo printf-parse.lo rawmemchr.lo readlink.lo 
secure_getenv.lo stat.lo strchrnul.lo strerror.lo strerror-override.lo 
strstr.lo vasnprintf.lo wcwidth.lo
libtool: link: warning: library 
`/Users/heinz/VE/rsb/rtems/build/tmp/sb-502/devel/qemu/Users/heinz/VE/ARM_WORK/rtems/6/lib/libglib-2.0.la'
 was moved.
grep: /Users/heinz/VE/ARM_WORK/rtems/6/lib/libintl.la: No such file or directory
/usr/local/bin/gsed: can't read 
/Users/heinz/VE/ARM_WORK/rtems/6/lib/libintl.la: No such file or directory
libtool: link: `/Users/heinz/VE/ARM_WORK/rtems/6/lib/libintl.la' is not a valid 
libtool archive
make[4]: *** [libgettextlib.la] Error 1
make[3]: *** [all] Error 2
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
shell cmd failed: /bin/sh -ex  
/Users/heinz/VE/rsb/rtems/build/gettext-0.18.3.1-x86_64-apple-darwin21.4.0-1/do-build
error: building gettext-0.18.3.1-x86_64-apple-darwin21.4.0-1
   See error report: rsb-report-gettext-0.18.3.1-x86_64-apple-darwin21.4.0-1.txt
Build Set: Time 0:04:14.522148

Gruss Heinz



------------------------------------------------------------------------------
Fritz-Haber-Institut    | Phone:         (+49 30) 8413-4270
Heinz Junkes             | Fax (G3+G4):   (+49 30) 8413-5900
Faradayweg 4-6        | VC: 102220181...@bjn.vc
D - 14195 Berlin        | E-Mail:        jun...@fhi-berlin.mpg.de
------------------------------------------------------------------------------

On 22. Apr 2022, at 08:55, Sebastian Huber <sebastian.hu...@embedded-brains.de> 
wrote:

On 18/04/2022 21:01, Cedric Berger wrote:
Hello,
On 11.04.22 00:37, Chris Johns wrote:
I suspect we will need a later version of expat that has the aarch64 support. I
do not have access access to an M1 Mac so I cannot test this.

Chris
So I tried to compile RTEMS 6 for arm on MacOS for both the M1 and Intel 
architecture. It was not very sucessful.
Command: rtems# ../source-builder/sb-set-builder 
--prefix=/opt/data/workspace/rtems-tools 6/rtems-arm
First on a M1 (fully patched and updated Mac Book Pro):
I got the same failure as Jay Zhu with expat, but that was easy to fix: I can 
confirm that moving from expat 2.1.0 to expat 2.4.8 solve the problem.
Next is the same issue with GMP. Again easy to fix by moving from gmp 6.1.0 to 
6.2.1, which solves the problem.
I sent a patch to update the GCC prerequisites to the versions in the latest 
gcc/contrib/download_prerequisites script for GCC 10 and 12.

At this point everthing compiles fine up to and including binutils 2.38
The next problem however is with gcc, which fails the same way (machine 
`arm64-apple' not recognized)
Fixing this however is above my pay grade: It seems RTEMS uses a patched, 
unreleased version of GCC. what to do?
RTEMS follows the release branch of GCC. Some patches cannot be back ported to 
a GCC release branch in upstream GCC, so there may be some RTEMS-specific 
patches. In general, all RTEMS-specific changes are integrated in the GCC 
master.

Next I tried on an Intel Mac (an older fully patched and updated Mac Book Pro):
The build also failed compiling gcc, but with another error:
clang: warning: argument unused during compilation: '-no-pie' 
[-Wunused-command-line-argument]
Undefined symbols for architecture x86_64:
"_arm_arch6", referenced from:
__GLOBAL__sub_I_gencondmd.c in gencondmd.o
"_arm_arch6m", referenced from:
__GLOBAL__sub_I_gencondmd.c in gencondmd.o
"_arm_arch7", referenced from:
__GLOBAL__sub_I_gencondmd.c in gencondmd.o
"_arm_arch8", referenced from:
__GLOBAL__sub_I_gencondmd.c in gencondmd.o
"_arm_arch_notm", referenced from:
__GLOBAL__sub_I_gencondmd.c in gencondmd.o
"_arm_arch_thumb2", referenced from:
__GLOBAL__sub_I_gencondmd.c in gencondmd.o
"_target_flags", referenced from:
__GLOBAL__sub_I_gencondmd.c in gencondmd.o
ld: symbol(s) not found for architecture x86_64
is this something like this? 
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92061#c5
If this is the same bug, then it is fixed on gcc 11.2 according to the last 
comment above.
So what to do next? GCC fails on both Intel and M1 Mac, for different reasons.
Could GCC be upgraded to 11.2 or 12.0 which should be available very soon? are 
the patches still needed?
It is still undecided which GCC version will be used for RTEMS 6. GCC 10 will 
reach its end of life with the next release this year. GCC 12 would be brand 
new. We didn't use GCC 11 so far. I tend to use GCC 12.

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to