@sTix You are right, I found it yesterday while I was searching for this issue. Is there a way to disable dlopen()? Or should we do something else to overcome the error in compiling process?
Is there a way to disable dlopen()? Or should we do something else to overcome the error in compiling process?
My guess is that plugin support relies on dlopen. Since clib2 (and newlib?) implements dlopen it's probably a configuration problem. There could of course also be something missing or broken in clib2.
@Walkero, sTix Probably all of this means, that we need necessary -ldl be added somewhere in configure scripts, or not only -ldl, but something else (which we need to find in configure.logs which fail).
@sTix Btw, as a said note, do you have any idea what needs to be done to port newer Binutils? I mean, what should be done at all which can't be done to have new ones working? Patches? Some 3d party new libs?
Btw, as a said note, do you have any idea what needs to be done to port newer Binutils? I mean, what should be done at all which can't be done to have new ones working? Patches? Some 3d party new libs?
No new libs. It's "just" a matter of applying the old patches. Most of it is probably straight forward, but there's a risk that some digging is necessary.
I would recommend doing it in very small steps, not going directly from what we have now to the bleeding edge. Going slow is likely the fastest way of doing it.
@sTix Is Binutils can be compiled by "small steps"? I was under the impression it's the same big beast as GCC, and compile everything at once. But if not, then sure, step by step, command by command.
Is Binutils can be compiled by "small steps"? I was under the impression it's the same big beast as GCC, and compile everything at once. But if not, then sure, step by step, command by command
Sorry, I was a bit fuzzy. What I meant with small steps was going from 1.24 to 1.25 first (just making numbers up here), and then 1.25 to 1.26 and so on, instead of going 1.24 to 1.35. When you compile you need to build the whole shebang.
So, in other words, all we need, is version by version grow up and update the patches we had (i just collect the info, in case I will find more developers to willing work on os4 for money, so collect other parts of SDK improvement).
@sTix Checked Binutils paths, they are small enough (all of them) except warnings one (that not of a big deal), and the main issue is the first one, big shit: "0001-Changes-for-various-Amiga-targets.patch" pretty fat. Sadly it didn't split on smaller bits.
As I see we have 2.23.2, and the next one was 2.24. Will check this out if there are too many differences.
EDIT: what i found now in that "big patch" that there is a lot of what we just do not need it. For example, for what we need there that:
And it also stated "changes for various amiga targets". But it's clear that no one will use anymore this adtools repo for anything but for AOS4. Times is gone for that, and Morphos devs use their own SDK, Amithlon is out of the question as well, 68k? Dunno if we need to keep it in adtools repo at all, if, all the 68k frameworks are based on something else already.
Imho we can ease our work quite much if we will just remove everything not related to aos4 in the patches for Binutils. What you think ?
EDIT2: in the meantime that is what i do:
1. download independently 2.23.2 and that big "0001-Changes-for-various-Amiga-targets.patch" and just tried it locally to patch this: yeah, all fine as expected.
2. download then 2.24. Put there the same that big 0001 patch, and checked how many errors we have, and there they are:
user@DESKTOP-3NFAB0O /amiga2/bintutiles_tests/tests/binutils-2.24
$ patch -p1 --dry-run < 0001-Changes-for-various-Amiga-targets.patch
checking file bfd/ChangeLog-9697
checking file bfd/ChangeLog-9899
checking file bfd/Makefile.am
Hunk #1 succeeded at 255 (offset 23 lines).
Hunk #2 succeeded at 313 (offset 23 lines).
Hunk #3 FAILED at 324.
Hunk #4 succeeded at 447 (offset 23 lines).
Hunk #5 succeeded at 505 (offset 23 lines).
Hunk #6 FAILED at 516.
Hunk #7 FAILED at 753.
Hunk #8 succeeded at 1061 (offset 40 lines).
3 out of 8 hunks FAILED
checking file bfd/Makefile.in
Hunk #1 succeeded at 557 (offset 25 lines).
Hunk #2 succeeded at 615 (offset 25 lines).
Hunk #3 FAILED at 624.
Hunk #4 succeeded at 749 (offset 25 lines).
Hunk #5 succeeded at 807 (offset 25 lines).
Hunk #6 FAILED at 816.
Hunk #7 FAILED at 1054.
Hunk #8 succeeded at 1253 (offset 30 lines).
Hunk #9 FAILED at 1376.
Hunk #10 FAILED at 1412.
Hunk #11 succeeded at 2125 (offset 49 lines).
5 out of 11 hunks FAILED
checking file bfd/amigaos.c
checking file bfd/amigaoslink.c
checking file bfd/aout-amiga.c
checking file bfd/aoutx.h
checking file bfd/bfd-in2.h
Hunk #1 succeeded at 3180 (offset 52 lines).
Hunk #2 FAILED at 3217.
Hunk #3 succeeded at 6190 (offset 282 lines).
Hunk #4 succeeded at 6485 (offset 265 lines).
1 out of 4 hunks FAILED
checking file bfd/bfd.c
Hunk #1 succeeded at 262 (offset 1 line).
checking file bfd/bfdio.c
Hunk #1 succeeded at 323 (offset -2 lines).
checking file bfd/config.bfd
Hunk #1 succeeded at 95 (offset 17 lines).
Hunk #2 succeeded at 744 (offset 23 lines).
Hunk #3 succeeded at 830 (offset 23 lines).
Hunk #4 succeeded at 906 (offset 23 lines).
Hunk #5 succeeded at 1218 (offset 42 lines).
checking file bfd/configure
Hunk #1 succeeded at 15195 (offset 23 lines).
Hunk #2 succeeded at 15220 (offset 23 lines).
Hunk #3 succeeded at 15258 (offset 24 lines).
Hunk #4 FAILED at 15271.
1 out of 4 hunks FAILED
checking file bfd/configure.host
Hunk #1 succeeded at 70 (offset 17 lines).
checking file bfd/configure.in
Hunk #1 succeeded at 684 (offset 20 lines).
Hunk #2 succeeded at 709 (offset 20 lines).
Hunk #3 succeeded at 747 (offset 21 lines).
Hunk #4 FAILED at 763.
1 out of 4 hunks FAILED
checking file bfd/doc/Makefile.am
Hunk #1 FAILED at 1.
Hunk #2 succeeded at 43 (offset 17 lines).
Hunk #3 succeeded at 201 (offset 17 lines).
1 out of 3 hunks FAILED
checking file bfd/doc/Makefile.in
Hunk #1 succeeded at 287 (offset 19 lines).
Hunk #2 succeeded at 314 (offset 19 lines).
Hunk #3 succeeded at 900 (offset 19 lines).
checking file bfd/doc/bfd.texinfo
Hunk #1 succeeded at 288 (offset 2 lines).
Hunk #2 succeeded at 306 (offset 2 lines).
checking file bfd/elf32-amiga.c
checking file bfd/elf32-amigaos.c (copied from bfd/elf32-ppc.c)
Hunk #1 FAILED at 31.
Hunk #2 succeeded at 1382 (offset 1 line).
Hunk #3 succeeded at 2050 (offset 53 lines).
Hunk #4 succeeded at 2400 (offset 66 lines).
Hunk #5 succeeded at 2417 (offset 66 lines).
Hunk #6 succeeded at 2472 (offset 66 lines).
Hunk #7 FAILED at 2423.
Hunk #8 succeeded at 2682 (offset 66 lines).
Hunk #9 succeeded at 2782 (offset 66 lines).
Hunk #10 succeeded at 3383 (offset 81 lines).
Hunk #11 succeeded at 3491 (offset 81 lines).
Hunk #12 FAILED at 3480.
Hunk #13 succeeded at 4343 (offset 87 lines).
Hunk #14 succeeded at 4860 (offset 104 lines).
Hunk #15 succeeded at 5157 (offset 104 lines).
Hunk #16 succeeded at 5256 (offset 104 lines).
Hunk #17 succeeded at 6192 (offset 107 lines).
Hunk #18 succeeded at 6225 with fuzz 1 (offset 107 lines).
Hunk #19 succeeded at 6596 (offset 111 lines).
Hunk #20 succeeded at 7372 (offset 111 lines).
Hunk #21 succeeded at 7412 (offset 111 lines).
Hunk #22 succeeded at 8278 (offset 113 lines).
Hunk #23 succeeded at 8702 (offset 111 lines).
Hunk #24 succeeded at 9133 (offset 111 lines).
Hunk #25 succeeded at 9361 (offset 111 lines).
Hunk #26 succeeded at 9409 (offset 111 lines).
Hunk #27 succeeded at 9527 (offset 111 lines).
Hunk #28 succeeded at 9996 (offset 116 lines).
Hunk #29 succeeded at 10048 (offset 116 lines).
3 out of 29 hunks FAILED
checking file bfd/elf32-i386-amithlon.c
checking file bfd/elf32-i386.c
Hunk #2 succeeded at 1721 (offset -62 lines).
Hunk #3 succeeded at 2355 (offset -59 lines).
Hunk #4 FAILED at 3596.
Hunk #5 succeeded at 3731 (offset 94 lines).
Hunk #6 succeeded at 5054 (offset 96 lines).
1 out of 6 hunks FAILED
checking file bfd/elf32-morphos.c
checking file bfd/elf32-ppc.c
Hunk #1 FAILED at 4412.
1 out of 1 hunk FAILED
checking file bfd/hosts/amigaos.h
checking file bfd/hosts/morphos.h
checking file bfd/libamiga.h
checking file bfd/libbfd.h
Hunk #1 succeeded at 1356 (offset 11 lines).
Hunk #2 FAILED at 1431.
1 out of 2 hunks FAILED
checking file bfd/linker.c
checking file bfd/reloc.c
Hunk #1 succeeded at 2812 (offset 10 lines).
Hunk #2 FAILED at 2980.
1 out of 2 hunks FAILED
checking file bfd/targets.c
Hunk #1 succeeded at 142 (offset -2 lines).
Hunk #2 succeeded at 567 (offset -2 lines).
Hunk #3 succeeded at 593 (offset -2 lines).
Hunk #4 succeeded at 628 (offset -1 lines).
Hunk #5 FAILED at 663.
Hunk #6 succeeded at 941 (offset 7 lines).
Hunk #7 succeeded at 975 (offset 7 lines).
Hunk #8 succeeded at 1016 (offset 10 lines).
Hunk #9 FAILED at 1041.
2 out of 9 hunks FAILED
checking file binutils/objcopy.c
Hunk #1 succeeded at 1175 (offset 74 lines).
Hunk #2 succeeded at 1241 (offset 74 lines).
Hunk #3 succeeded at 2020 (offset 85 lines).
Hunk #4 succeeded at 2844 (offset 89 lines).
Hunk #5 succeeded at 3279 (offset 91 lines).
Hunk #6 succeeded at 4126 (offset 97 lines).
checking file binutils/readelf.c
Hunk #2 FAILED at 1521.
Hunk #3 succeeded at 1857 (offset 67 lines).
1 out of 3 hunks FAILED
checking file binutils/rename.c
checking file config.sub
Hunk #1 succeeded at 350 (offset -3 lines).
Hunk #3 FAILED at 1342.
1 out of 3 hunks FAILED
checking file config/mh-amigaos
checking file config/mh-morphos
checking file configure
Hunk #1 succeeded at 3828 (offset 198 lines).
Hunk #2 succeeded at 3872 (offset 195 lines).
checking file configure.ac
Hunk #1 succeeded at 1164 (offset 108 lines).
Hunk #2 succeeded at 1189 with fuzz 1 (offset 105 lines).
checking file gas/ChangeLog-9697
checking file gas/ChangeLog-9899
checking file gas/Makefile.am
Hunk #1 succeeded at 266 (offset 21 lines).
Hunk #2 succeeded at 294 (offset 21 lines).
Hunk #3 succeeded at 364 (offset 19 lines).
checking file gas/Makefile.in
Hunk #1 succeeded at 535 (offset 22 lines).
Hunk #2 succeeded at 563 (offset 22 lines).
Hunk #3 succeeded at 798 (offset 19 lines).
Hunk #4 succeeded at 1889 (offset 49 lines).
Hunk #5 succeeded at 2464 (offset 35 lines).
checking file gas/as.c
Hunk #1 succeeded at 102 (offset -3 lines).
Hunk #2 succeeded at 1058 (offset 7 lines).
checking file gas/config/m68k-parse.h
checking file gas/config/m68k-parse.y
checking file gas/config/obj-amigahunk.c
checking file gas/config/obj-amigahunk.h
checking file gas/config/obj-elf.c
Hunk #1 succeeded at 1406 (offset 16 lines).
Hunk #2 FAILED at 1423.
1 out of 2 hunks FAILED
checking file gas/config/tc-i386.h
checking file gas/config/tc-m68k.c
Hunk #8 succeeded at 2554 (offset -2 lines).
Hunk #9 succeeded at 2734 (offset -2 lines).
Hunk #10 succeeded at 2765 (offset -2 lines).
Hunk #11 succeeded at 2878 (offset -2 lines).
Hunk #12 succeeded at 3011 (offset -2 lines).
Hunk #13 succeeded at 3061 (offset -2 lines).
Hunk #14 succeeded at 3130 (offset -2 lines).
Hunk #15 succeeded at 3197 (offset -2 lines).
Hunk #16 succeeded at 3252 (offset -2 lines).
Hunk #17 succeeded at 3303 (offset -2 lines).
Hunk #18 succeeded at 3770 (offset -2 lines).
Hunk #19 succeeded at 4119 (offset -2 lines).
Hunk #20 succeeded at 4142 (offset -2 lines).
Hunk #21 succeeded at 4513 (offset -2 lines).
Hunk #22 succeeded at 4576 (offset -2 lines).
Hunk #23 succeeded at 4614 (offset -2 lines).
Hunk #24 succeeded at 5131 (offset -2 lines).
Hunk #25 succeeded at 5169 (offset -2 lines).
Hunk #26 succeeded at 5219 (offset -2 lines).
Hunk #27 succeeded at 5257 (offset -2 lines).
Hunk #28 succeeded at 5277 (offset -2 lines).
Hunk #29 succeeded at 5339 (offset -2 lines).
Hunk #30 succeeded at 5449 (offset -2 lines).
Hunk #31 succeeded at 5521 (offset -2 lines).
Hunk #32 succeeded at 5598 (offset -2 lines).
Hunk #33 succeeded at 5672 (offset -2 lines).
Hunk #34 succeeded at 7719 (offset -2 lines).
Hunk #35 succeeded at 7764 (offset -2 lines).
Hunk #36 succeeded at 7954 (offset -2 lines).
Hunk #37 FAILED at 8123.
1 out of 37 hunks FAILED
checking file gas/config/tc-m68k.h
checking file gas/config/tc-ppc.c
Hunk #1 succeeded at 1409 (offset -12 lines).
Hunk #2 succeeded at 1866 (offset -12 lines).
Hunk #3 succeeded at 2109 (offset -7 lines).
Hunk #4 succeeded at 3451 (offset 126 lines).
Hunk #5 FAILED at 6668.
Hunk #6 FAILED at 6710.
2 out of 6 hunks FAILED
checking file gas/config/tc-sh.c
Hunk #2 succeeded at 2240 (offset 1 line).
Hunk #3 succeeded at 2321 (offset 1 line).
Hunk #4 succeeded at 2975 (offset 1 line).
Hunk #5 succeeded at 3056 (offset 1 line).
Hunk #6 succeeded at 3075 (offset 1 line).
Hunk #7 succeeded at 3116 (offset 1 line).
Hunk #8 succeeded at 3515 (offset 1 line).
Hunk #9 succeeded at 3556 (offset 1 line).
Hunk #10 succeeded at 3621 (offset 1 line).
Hunk #11 succeeded at 3799 (offset 1 line).
checking file gas/config/te-amiga.h
checking file gas/config/te-amigaos.h
checking file gas/config/te-amithlon.h (copied from gas/config/te-nbsd.h)
checking file gas/config/te-morphos.h
checking file gas/configure
Hunk #1 succeeded at 12490 (offset -10 lines).
Hunk #2 succeeded at 12546 (offset -10 lines).
checking file gas/configure.in
Hunk #1 succeeded at 591 (offset -7 lines).
Hunk #2 succeeded at 628 (offset -7 lines).
checking file gas/configure.tgt
Hunk #1 succeeded at 57 (offset 17 lines).
Hunk #2 succeeded at 200 (offset 18 lines).
Hunk #3 succeeded at 295 (offset 22 lines).
Hunk #4 succeeded at 360 (offset 18 lines).
checking file gas/read.c
Hunk #2 succeeded at 315 (offset -3 lines).
Hunk #3 succeeded at 1896 (offset -6 lines).
Hunk #4 succeeded at 4403 (offset -140 lines).
Hunk #5 succeeded at 4431 (offset -140 lines).
checking file gas/read.h
checking file gas/write.c
Hunk #1 succeeded at 148 (offset -1 lines).
Hunk #6 FAILED at 898.
Hunk #7 succeeded at 1888 (offset -8 lines).
1 out of 7 hunks FAILED
checking file gas/write.h
Hunk #1 succeeded at 176 (offset 4 lines).
checking file gprof/Makefile.am
Hunk #1 succeeded at 53 (offset 17 lines).
checking file gprof/Makefile.in
Hunk #1 succeeded at 1033 (offset 20 lines).
checking file gprof/configure
Hunk #1 succeeded at 11864 (offset 14 lines).
checking file gprof/configure.in
Hunk #1 succeeded at 45 (offset 17 lines).
checking file gprof/gconfig.in
checking file include/elf/amigaos.h
checking file include/elf/ppc.h
checking file include/libiberty.h
checking file ld/ChangeLog-9197
checking file ld/ChangeLog-9899
checking file ld/Makefile.am
Hunk #1 succeeded at 146 (offset 18 lines).
Hunk #2 FAILED at 340.
Hunk #3 succeeded at 403 (offset -4 lines).
Hunk #4 FAILED at 667.
Hunk #5 FAILED at 1478.
Hunk #6 succeeded at 1818 (offset 56 lines).
3 out of 6 hunks FAILED
checking file ld/Makefile.in
Hunk #1 succeeded at 454 (offset 19 lines).
Hunk #2 FAILED at 647.
Hunk #3 succeeded at 711 (offset -3 lines).
Hunk #4 succeeded at 1098 (offset 29 lines).
Hunk #5 FAILED at 1309.
Hunk #6 succeeded at 1413 (offset 37 lines).
Hunk #7 succeeded at 2181 (offset 38 lines).
Hunk #8 FAILED at 2968.
Hunk #9 succeeded at 3322 (offset 70 lines).
3 out of 9 hunks FAILED
checking file ld/configure.host
Hunk #1 succeeded at 188 (offset 18 lines).
checking file ld/configure.tgt
Hunk #1 succeeded at 326 with fuzz 1 (offset 28 lines).
Hunk #2 succeeded at 391 (offset 28 lines).
Hunk #3 succeeded at 528 (offset 38 lines).
Hunk #4 succeeded at 821 (offset 36 lines).
checking file ld/emulparams/amiga.sh
checking file ld/emulparams/amiga_bss.sh
checking file ld/emulparams/amigaos.sh
checking file ld/emulparams/amithlon.sh
checking file ld/emulparams/morphos.sh
checking file ld/emulparams/morphos_baserel.sh
checking file ld/emulparams/ppcamiga.sh
checking file ld/emulparams/ppcamiga_bss.sh
checking file ld/emultempl/amiga.em
checking file ld/emultempl/amigaos.em (copied from ld/emultempl/elf32.em)
checking file ld/emultempl/amithlon.em
checking file ld/emultempl/morphos.em
checking file ld/emultempl/ppc32elf.em
checking file ld/ldctor.c
checking file ld/ldfile.c
checking file ld/ldfile.h
checking file ld/ldlang.c
checking file ld/ldlang.h
checking file ld/ldlex.c
Hunk #2 succeeded at 51 (offset 1 line).
Hunk #3 succeeded at 81 (offset 1 line).
Hunk #4 FAILED at 138.
Hunk #5 FAILED at 176.
Hunk #6 FAILED at 198.
Hunk #7 FAILED at 268.
Hunk #8 FAILED at 297.
Hunk #9 FAILED at 1712.
Hunk #10 FAILED at 1759.
Hunk #11 succeeded at 1826 (offset 27 lines).
Hunk #12 FAILED at 1905.
Hunk #13 succeeded at 1979 (offset 27 lines).
Hunk #14 succeeded at 2017 (offset 27 lines).
Hunk #15 FAILED at 3133.
Hunk #16 succeeded at 3299 (offset 37 lines).
Hunk #17 FAILED at 3318.
Hunk #18 FAILED at 3363.
Hunk #19 FAILED at 3458.
Hunk #20 FAILED at 3485.
Hunk #21 succeeded at 3682 (offset 37 lines).
Hunk #22 FAILED at 3757.
Hunk #23 FAILED at 3849.
Hunk #24 FAILED at 3941.
Hunk #25 succeeded at 4125 (offset 36 lines).
16 out of 25 hunks FAILED
checking file ld/ldmain.c
Hunk #1 succeeded at 407 (offset 1 line).
checking file ld/scripttempl/amiga.sc
checking file ld/scripttempl/amiga_bss.sc
checking file ld/scripttempl/amigaos.sc (copied from ld/scripttempl/elf64hppa.sc)
Hunk #13 FAILED at 512.
1 out of 13 hunks FAILED
checking file ld/scripttempl/amithlon.sc (copied from ld/scripttempl/mep.sc)
Hunk #8 FAILED at 397.
1 out of 8 hunks FAILED
checking file ld/scripttempl/morphos.sc (copied from ld/scripttempl/elfi370.sc)
Hunk #6 FAILED at 209.
Hunk #7 FAILED at 223.
2 out of 7 hunks FAILED
checking file ld/scripttempl/morphos_baserel.sc (copied from ld/scripttempl/elfi370.sc)
Hunk #5 FAILED at 176.
Hunk #6 FAILED at 190.
2 out of 6 hunks FAILED
checking file libiberty/config/mh-amigaos
checking file libiberty/config/mh-morphos
checking file libiberty/lrealpath.c
checking file opcodes/m68k-dis.c
See, i can't say there are many. The list looks long, but that is because some parts are ok in some files, and just one or two fail. Some files as you can see even ok as it (those morphos ones, amithlon ones, 68k ones).
Will try to fix patch file by file. Anyway, shouldn't we still remove non-related-anymore stuff? Like amithlon, morphos, 68k, etc ?
And probably we need to split that big patches on a few smaller IMHO. at least gas ones, ld ones, bfd ones can be separate ones, to make our lives easier.
Edited by kas1e on 2022/2/15 21:06:06 Edited by kas1e on 2022/2/15 21:31:06 Edited by kas1e on 2022/2/15 21:46:25
@sTix I am almost finished with that crap calling "re-apply changes from our Binutils to the next one". By almost finishing, I mean that i have almost done with the first, fat patch. Changes are the same pretty much and there are almost no differences (or very-very small, which is only cosmetic).
The big question i have now, is that in this patch, actually, only 30% of the patch is amigaos4 related. Other stuff is 68k, morphos, and amithlon i386. Attaching that baggage again and again with no benefits only will make a mess and hard times for all of us. Maybe it's time to get rid of 68k/mos/amithlon in adtools repo, just because it is of no use by anyone else but only by us.
Besides, everyone who wants can use the older (current) version for those platforms (but i doubt anyone needs it, 68k and morphos teams have their own compilers already everywhere). It's not that we all want to spend our time sitting re-applying amithlon/68k/mos patches while we know that time is gone for that "we all together work on something" and they all have their own frameworks for a long time.
Currently, with the next Binutils version, i of course will re-aply them all as it now, but surely that a pain in the ass.
Imho we can ease our work quite much if we will just remove everything not related to aos4 in the patches for Binutils. What you think ?
Like you said, Morphos have their own SDK, Amithlon is long gone. For 68k there's bebbos repo. I think we can go for just the OS4 parts in other words.
@sTix Right... I am almost done with it, maybe for a start we can keep it as it is, and then for another version, we can remove all that.
To say the truth, after checking the whole patches of the Binutils, there is almost nothing. I mean, there are just "BFD" amigaos4 specific parts added there and there, and that's all. Binaries themselves almost have no changes, other patches or just pure 68k, or warnings-free related, so at the end of all that didn't look as heavy as we think at first.
user@DESKTOP-3NFAB0O /amiga2/bintutiles_tests/tests/build_test_after_patching
$ ld/.libs/ld-new.exe -v
GNU ld (GNU Binutils) 2.24
user@DESKTOP-3NFAB0O /amiga2/bintutiles_tests/tests/build_test_after_patching
$ gas/.libs/as-new.exe -v
GNU assembler version 2.24 (ppc-amigaos) using BFD version (GNU Binutils) 2.24
user@DESKTOP-3NFAB0O /amiga2/bintutiles_tests/tests/build_test_after_patching
$ binutils/.libs/readelf.exe -v
GNU readelf (GNU Binutils) 2.24
Copyright 2013 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
user@DESKTOP-3NFAB0O /amiga2/bintutiles_tests/tests/build_test_after_patching
$ binutils/.libs/readelf.exe -h /amiga2/perfomance_monitor_tests/results/newlib/test_gprof_newlib
ELF Header:
Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, big endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: PowerPC
Version: 0x1
Entry point address: 0x1000074
Start of program headers: 52 (bytes into file)
Start of section headers: 12208 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 2
Size of section headers: 40 (bytes)
Number of section headers: 29
Section header string table index: 26
From that, we can say that at least "bfd" (the main hardcore part of Binutils) is working. Will try to build simple test cases now.
There i add fully 0001-Changes-for-various-Amiga-targets.patch, just without "changelog" changes, as it really has no needs.
Also, in that patch, i add the 0012-Fix-pointer-comparison-bug.patch as well and 0007-Keep-symbols-for-stripped-sections.-This-is-importan.patch (because i just work from 2 directories, and can't split patches at the moment). Also, I am not sure, if you can adapt the patch as i do it just by simply having two dirs "a" and "b" and making a patch like "diff -ru --new-file a b >binutls_2_24.patch".
2 other patches about warnings i ignore, by doing that in the configure line:
(i.e. disable warnings not from code, but by disabling them). I just think that in later Binutils those ones will be dealt with (i mean already dealt with), so we IMHO not need to attach that baggage with us IMHO.
And, i didn't add other patches at the moment, as some of them look like may not need it (like 0002-Fixed-errors-occuring-with-more-recent-versions-of-t.patch, i not sure how to check where issues come), and other ones as well, but I assume those ones are easy enough to add.
Just we need to deal with that "big" patch probably. Will it works like it, or do we need to make it exactly with "diff --git" stuff, etc ? Should we now remove morphos/amithlon/etc stuff, or do we just need to deal at moment with 2.24, test that all ok, and then move futher with next binutils, and in this one remove those parts.
Edited by kas1e on 2022/2/17 14:19:40 Edited by kas1e on 2022/2/17 14:40:36 Edited by kas1e on 2022/2/17 15:04:11 Edited by kas1e on 2022/2/17 15:13:20 Edited by kas1e on 2022/2/17 15:16:42 Edited by kas1e on 2022/2/17 16:04:35
I get different messages if logged in (only old ones) or not (new ones included), maybe a problem with the new forum code. New messages are now on page 1 (only if logged in), used to be on the last page (still the case if not logged in). Sorting problem?
The 0001-patches in binutils, coreutils and gcc ought to be split IMO.
Of course! What i mean before, is patches for binutils (i.e. split the 0001 binutuil's patch on smaller ones). But i think that after removing morphos/amithlon and 68k the main big patch will be small enough to be kept as it is, so no worry about imho.
What is more important: can you integrate the patch as I do it, or do all those "FROM/FROM/Subject" at the top is need it?
I mean, how we can now integrate new patches so to have test builds, etc.
Or do I need to create some private repo for making patches, and doing all that "diff --git" stuff? Maybe you have some "step by step" on how you generate patches for GCC ?
ps. Btw, find out that DWARF-5 support was added in 2017-02, so the version of Binutils coming after was 2.28. But those changes didn't fits in, and they fits in 2.29. Our current one is 2.23, the one to which I re-apply patches is 2.24, so just +5 versions and we will have at least "minimum" need it for being in sync with everything else and have GCC and stuff be in sync with all that.
@joerg Quote:
You should check what causes the "-Wno-shift-negative-value" warnings, maybe not yet, but in a final version of binutils. The rest can be ignored.
That warning happens in one place, there :
Quote:
In file included from ppc-opc.c:26: ./../include/opcode/ppc.h:281:29: error: left shift of negative value [-Werror=shift-negative-value] 281 | #define PPC_OPSHIFT_INV (-1 << 31) | ^~ ppc-opc.c:391:14: note: in expansion of macro ‘PPC_OPSHIFT_INV’ 391 | { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED}, | ^~~~~~~~~~~~~~~ ./../include/opcode/ppc.h:281:29: error: left shift of negative value [-Werror=shift-negative-value] 281 | #define PPC_OPSHIFT_INV (-1 << 31) | ^~
And it fixed by "0008-Fix-undefined-behaviour.patch", where -1 replace on -1U
Edited by kas1e on 2022/2/17 19:38:56 Edited by kas1e on 2022/2/17 19:40:52 Edited by kas1e on 2022/2/17 19:41:27 Edited by kas1e on 2022/2/17 19:43:17 Edited by kas1e on 2022/2/17 19:56:28 Edited by kas1e on 2022/2/17 20:05:57
Of course! What i mean before, is patches for binutils (i.e. split the 0001 binutuil's patch on smaller ones). But i think that after removing morphos/amithlon and 68k the main big patch will be small enough to be kept as it is, so no worry about imho
Indeed, keep it as it is. I just meant in the long run.
Quote:
What is more important: can you integrate the patch as I do it, or do all those "FROM/FROM/Subject" at the top is need it?
I mean, how we can now integrate new patches so to have test builds, etc.
Or do I need to create some private repo for making patches, and doing all that "diff --git" stuff? Maybe you have some "step by step" on how you generate patches for GCC ?
I'm not sure how you're doing it, but the easiest way is to not explicitly deal with patches using diff and so on, but to do all the work using just git in binutils/repo, resolving conflicts and doing amends. Then when it's done, use genpatch as described in the github page to generate all patches. By doing so you keep all the individual patches in the patch sets (0000 being the biggest one, containing many many patches), including all headers (the FROM [...] part). The headers are valuable, that's the SVN (or CVS?) commit history. Those are needed if we want to split 0000 later on.
it's a setting in your account you probably want 'oldest first' instead of 'newest first', don't know if threaded display interferes with the display order, but check that after you have checked the display order.
@sTix Ok, will try to understand how to do it all correctly. But how do you split on different patches? I mean, you download adtools, create your local fork in your GitHub acc. Then doing changes, and then how you split on different patches? Doing changes for one patch, commit, made a patch, then again changes, again commit, and next patch?
Also, we need to agree on what we do:
1. I want to remove morphos and amithlon for 2.24 for now. Are we ok with that?
2. Do we need to make those "warning less" patches or are we just better use CFLAGS options to disable those warnings (as 99.9% they fixed in newer Binutils). Or we better keep those warning-remove patches?
3. I also have questions about the needs of 0002-Fixed-errors-occuring-with-more-recent-versions-of-t.patch and 0003-Disabled-some-stuff-such-that-68k-vtarget-builds-aga.patch ,if they need it at all now...
Maybe for 2.24 we "just" remove morphos/amithlon and that all? And for 2.25 remove/optimize something else, etc.