From: Miro K. <mir...@gm...> - 2024-04-29 15:10:03
|
On Mon, 29 Apr 2024 at 10:37, Thorsten Otto <ad...@th...> wrote: > Hm, why in subdirectories? I am just building 3 different archives for the > binaries now (+ one with the libraries for all architectures) > Even better. I've pushed the changes now. Hopefully did not mess anything up ;) > I have briefly went through the changes (quite a lot of them...): 1. I guess you could have separated those __HAVE_68881__ and whitespace / syntax (ori #1 -> bset, movl -> move.l etc) / register (e.g. where you decided that "a0" should be replaced with "a1" to better fit the fast call code later) changes to make it a bit smaller for the final fast call patch. 2. "make WITH_DEBUG_LIB=yes WITH_PROFILE_LIB=yes' produces quite an odd tree in "build/m68000": there are empty directories like "argp", "common" etc from the source tree plus *.o and *.a files while in other "build" directories there are just *.o and *.a files. 3. zic (and others) doesn't seem to be built for other than 68000: (after all the targets are built...) Making all in tz make[1]: Entering directory '/home/mikro/atari/projects/freemint/mintlib.git/tz' m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c zic.c -o zic.o m68k-atari-mint-gcc -m68000 -s -nostartfiles -nostdlib ../build/m68000/crt0.o zic.o -o zic -lgcc ../build/m68000/libc.a -lgcc m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c zdump.c -o zdump.o CFLAGS=-O2 -fomit-frame-pointer -fgnu89-inline LDFLAGS= m68k-atari-mint-gcc -m68000 -s -nostartfiles -nostdlib ../build/m68000/crt0.o zdump.o -o zdump -lgcc ../build/m68000/libc.a -lgcc sed \ -e 's|AWK=[^}]*|AWK=awk|g' \ -e 's|TZDIR=[^}]*|TZDIR=/usr/share/zoneinfo|' \ -e 's|\(TZVERSION\)=.*|\1=2022g|' \ <tzselect.ksh >tzselect chmod +x tzselect m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c tzinit.c -o tzinit.o m68k-atari-mint-gcc -m68000 -s -nostartfiles -nostdlib ../build/m68000/crt0.o tzinit.o -o tzinit -lgcc ../build/m68000/libc.a -lgcc make[1]: Leaving directory '/home/mikro/atari/projects/freemint/mintlib.git/tz' Making all in sunrpc make[1]: Entering directory '/home/mikro/atari/projects/freemint/mintlib.git/sunrpc' m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_clntout.c -o rpc_clntout.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_cout.c -o rpc_cout.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_hout.c -o rpc_hout.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_main.c -o rpc_main.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_parse.c -o rpc_parse.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_sample.c -o rpc_sample.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_scan.c -o rpc_scan.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_svcout.c -o rpc_svcout.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_tblout.c -o rpc_tblout.o m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpc_util.c -o rpc_util.o m68k-atari-mint-gcc -m68000 -s -nostartfiles -nostdlib ../build/m68000/crt0.o rpc_clntout.o rpc_cout.o rpc_hout.o rpc_main.o rpc_parse.o rpc_sample.o rpc_scan.o rpc_svcout.o rpc_tblout.o rpc_util.o -o rpcgen -lgcc ../build/m68000/libc.a -lgcc m68k-atari-mint-gcc -m68000 -O2 -fomit-frame-pointer -fgnu89-inline -D_GNU_SOURCE -D_REENTRANT -nostdinc -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include -I/home/mikro/gnu-tools/m68000/lib/gcc/m68k-atari-mint/7.5.0/include-fixed -I../include -I. -I.. -I../time -c rpcinfo.c -o rpcinfo.o m68k-atari-mint-gcc -m68000 -s -nostartfiles -nostdlib ../build/m68000/crt0.o rpcinfo.o -o rpcinfo -lgcc ../build/m68000/libc.a -lgcc make[1]: Leaving directory '/home/mikro/atari/projects/freemint/mintlib.git/sunrpc' and that's it, the build is finished. "zic", "zdump" etc are located in "tz" (source) directory and not in "build". 4. Is there a reason to build the debug targets on ELF by default? 5. I compared libc.a from commit 0a659908 (ICE workaround) and head The good news is that majority of the code is exactly the same, most of the changes is a different address for given module. However one thing seemed odd, in function _eval_expr_val: old code: 39c: 0800 0001 btst #1,%d0 3a0: 66be bnes 360 <_eval_expr_val+0x144> 3a2: 60c2 bras 366 <_eval_expr_val+0x14a> 3a4: 1202 moveb %d2,%d1 3a6: 244d moveal %a5,%a2 3a8: 0c01 002b cmpib #43,%d1 3ac: 6600 fed8 bnew 286 <_eval_expr_val+0x6a> 3b0: 6000 ff24 braw 2d6 <_eval_expr_val+0xba> 000003b4 <.LC1>: 3b4: 2e2e 2f70 movel %fp@(12144),%d7 3b8: 6f73 bles 42d <_w_addmem+0x29> 3ba: 6978 bvss 434 <_w_addmem+0x30> 3bc: 000003c7 <.LC2>: 3c7: 6275 bhis 43e <_w_addmem+0x3a> 3c9: 6666 bnes 431 <_w_addmem+0x2d> 3cb: 6572 bcss 43f <_w_addmem+0x3b> 3cd: 203d .short 0x203d 3cf: 3d20 movew %a0@-,%fp@- 3d1: 2828 766f movel %a0@(30319),%d4 3d5: 6964 bvss 43b <_w_addmem+0x37> new code: 39c: 0800 0001 btst #1,%d0 3a0: 66be bnes 360 <_eval_expr_val+0x144> 3a2: 60c2 bras 366 <_eval_expr_val+0x14a> 3a4: 1202 moveb %d2,%d1 3a6: 244d moveal %a5,%a2 3a8: 0c01 002b cmpib #43,%d1 3ac: 6600 fed8 bnew 286 <_eval_expr_val+0x6a> 3b0: 6000 ff24 braw 2d6 <_eval_expr_val+0xba> 000003b4 <.LC1>: 3b4: 2e2e 2f2e movel %fp@(12078),%d7 3b8: 2e2f 706f movel %sp@(28783),%d7 3bc: 7369 .short 0x7369 3be: 782f moveq #47,%d4 3c0: 776f .short 0x776f 3c2: 7264 moveq #100,%d1 3c4: 6578 bcss 43e <_w_addmem+0x38> 3c6: 702e moveq #46,%d0 3c8: 000003ca <.LC2>: 3ca: 6275 bhis 441 <_w_addmem+0x3b> 3cc: 6666 bnes 434 <_w_addmem+0x2e> 3ce: 6572 bcss 442 <_w_addmem+0x3c> 3d0: 203d .short 0x203d 3d2: 3d20 movew %a0@-,%fp@- 3d4: 2828 766f movel %a0@(30319),%d4 3d8: 6964 bvss 43e <_w_addmem+0x38> what are those .short 0xXXXX statements in .LC1 ? That's -m68000, there shouldn't be any unknown instruction involved. Perhaps it is not code at all but I find it odd that it differs (again, both are -m68000, same compiler, same flags). -- http://mikro.atari.org |