![]() |
![]() |
#1 |
Registered User
Join Date: Jul 2008
Location: Poland
Posts: 678
|
New 68k gcc toolchain
Hi!
Finally new gcc 4.5.4 + clib2 linux for 68k target! I've just built hhexen-1.6.3 using it! Ixemul and libnix build was quiting itself to workbench. So now we have third option ![]() You can grab it here: http://ci.netsurf-browser.org/builds...hains/?C=M;O=D I 'molested' netsurf devs to make it ![]() |
![]() |
![]() |
#2 |
Computer Nerd
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,964
|
How good is the code it produces?
|
![]() |
![]() |
#3 |
Registered User
Join Date: Jul 2008
Location: Poland
Posts: 678
|
I don't know.
I could compile some test program to check. |
![]() |
![]() |
#4 |
Registered User
Join Date: Dec 2014
Location: France
Posts: 104
|
Hi, it is good news, thank you.
I can see there is an update today. http://ci.netsurf-browser.org/builds...4-01-36.tar.xz Is it usable with ADE ? http://aminet.net/package/dev/gcc/ADE |
![]() |
![]() |
#5 | |
mä vaan
Join Date: Nov 2001
Location: Finland
Posts: 1,692
|
Netsurf
Chris has fixed toolchain and Netsurf and all depencies builds now. Compiled Netsurf exe even starts now but crash before it opens window
Quote:
He is asking help to fix remaining bugs, so NOTE: This would be officially supported build, unlike current SDL + Framebuffer Netsurf. More about Chris's effort to get proper Netsurf for 68k Amigas here : http://www.amiga.org/forums/showthre...t=63990&page=9 |
|
![]() |
![]() |
#6 |
Thalion Webshrine
Join Date: Jan 2004
Location: Oxford
Posts: 14,643
|
|
![]() |
![]() |
#7 | |
mä vaan
Join Date: Nov 2001
Location: Finland
Posts: 1,692
|
About Netsurf : http://www.amiga.org/forums/showthre...=63990&page=17
Quote:
|
|
![]() |
![]() |
#8 |
Registered User
Join Date: Dec 2010
Location: Athens/Greece
Age: 53
Posts: 732
|
Umm, isn't GetHead returning a null when there is just one element in the list?
|
![]() |
![]() |
#9 |
Registered User
![]() Join Date: Jun 2008
Location: outer space
Posts: 60
|
May I ask why version 4.5 and not the latest 4.x? Just curious. And on which distribution does this work?
|
![]() |
![]() |
#10 |
Registered User
Join Date: Jul 2008
Location: Poland
Posts: 678
|
Maybe it was easier to patch? I don't know, you better ask Chris Young.
Anyway it is now downgraded to 3.4 for better 68k code. I tested on Ubuntu and debian. |
![]() |
![]() |
#11 | ||
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Quote:
1) Code:
if (NULL != list->lh_Head->ln_Succ) printf("list is empty\n"); Code:
if (list->lh_TailPred == (struct Node *)list) printf("list is empty\n"); Code:
if (IsListEmpty(list)) printf("list is empty\n"); Code:
struct Node *GetHead(struct List *list) { struct Node *res = NULL; if ((NULL != list) && (!IsListEmpty(list)) { res = list->lh_Head; } return res; } Quote:
It would not be easy. GCC uses its own static link library format. I believe vbcc uses a format similar to what SAS/C used. A static or dynamic library could be created with the vbcc vclib math library code using different names. For example, the C= mathieeexxx.library math libraries can be called from GCC even if there is not a compiler option to use them implicitly. The C= libraries do not provide a complete c99 implementation though. It may be easier to fix up vbcc's integer code generation. The basic vbcc integer code generation is not bad just too simple. NetSurf is only written in C (no C++) but does require c99 in recent versions. Vbcc received some c99 updates including c99 include files like inttypes.h (Frank Wille should be able to send you updates). Have you tried to compile NetSurf with vbcc? If so, what was lacking? |
||
![]() |
![]() |
#12 | |
Registered User
Join Date: Jul 2008
Location: Poland
Posts: 678
|
Quote:
Just got NetSurf working with libnix. It works better than clib2, no problem with events and slowdown after loading 4th page. It is only lacking %zd, %llu in printf functions. Maybe it can be enabled like in clib2 by putting -lc before -lm ? Do you know this? |
|
![]() |
![]() |
#13 | |
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Quote:
It looks like vbcc should support %zd and %llu from looking at the vclib vfprintf() source. Vbcc does *not* currently support the uncommon C99 floating point %a hex notation. Vbcc is strict for whatever version of C is selected and will often generate many warnings and errors by default. GCC uses its own non-conforming sloppy version of C by default and is quiet about many warnings and errors. The sloppiness of GCC is less overwhelming for porting projects but vbcc has its advantages of making sure the code is more C compliant and portable. They are different beasts and vbcc has its own learning curve. |
|
![]() |
![]() |
#14 |
Registered User
Join Date: Jul 2008
Location: Poland
Posts: 678
|
Libnix was updated to version 3.0 by Diego Casorran.
https://github.com/diegocr/libnix Does any of this flags make anything better? -D__USE_BASETYPE__ -D__USE_INLINE__ -U__STRICT_ANSI__ -DSTMATH |
![]() |
![]() |
#15 | |
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Quote:
Looking at libnix/stdio/vfprintf.c (used by printf), I don't see any support of %zd or 64 bit integers. I doubt changing switches or variables will solve this. Have you tried contacting Diego Casorran with your questions and needs? |
|
![]() |
![]() |
#16 |
Registered User
Join Date: Jul 2008
Location: Poland
Posts: 678
|
Yes, he didn't answer, but I managed to compile libnix myself so I can now add anything I need.
![]() Last edited by arti; 29 July 2015 at 13:17. |
![]() |
![]() |
#17 |
Registered User
Join Date: Jul 2008
Location: Poland
Posts: 678
|
Looks like libnix version is working fast and stable.
It could be faster with some asm optimisations. @matthey are you interested ? ![]() |
![]() |
![]() |
#18 | ||
Banned
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
|
Quote:
Quote:
It looks like the glibc (GNU library) source for vfprintf.c has changed significantly. https://fossies.org/dox/glibc-2.21/v...8c_source.html The source code of the new version of vfprintf() is huge. You could try adapting it for libnix but I wouldn't be surprised if resulting executables are also significantly larger. Maybe an older version of vfprintf() could be found that has 64 bit integer support but before the rewrite. The vbcc vclib source is similar to the old vfprintf() but has support for %llu and %zd. The libnix source has the following line. Code:
if (*ptr=='h' || *ptr=='l' || *ptr=='L') Code:
if (*ptr=='h' || *ptr=='l' || *ptr=='L' || *ptr=='j' || *ptr=='z' || *ptr== 't') |
||
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
gcc .lib | mritter0 | Coders. C/C++ | 13 | 27 October 2018 02:13 |
Issue with photon/xxxx WinUAE Toolchain | arpz | Coders. Asm / Hardware | 2 | 26 September 2015 22:33 |
gcc linker | mritter0 | Coders. C/C++ | 3 | 21 December 2014 16:54 |
Building 68k C++ using gcc and an IDE! | NovaCoder | Coders. General | 25 | 17 May 2010 02:19 |
latest GCC compiler 68k | Tony Landais | Coders. General | 27 | 23 November 2006 01:02 |
|
|