Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
56 user(s) are online (45 user(s) are browsing Forums)

Members: 0
Guests: 56

more...

Support us!

Headlines

Forum Index


Board index » All Posts (rjd324)




Re: Amiga Package Management (SDL)
Quite a regular
Quite a regular


@kas1e
Excellent information, thanks.

@raziel
Thanks for the welcome, hopefully I can contribute to something at some point.

@all
Hmm. A package management system. I read a thread on EAB about this a while ago and people have tried to but ultimately not managed to write such a thing. There is no real field in packages from either Os4Depot / aminet named "dependencies". I guess the package management system in the case above is the linker itself.

Go to top


Re: X1000 occassional hanging
Quite a regular
Quite a regular


@Raziel
Very useful to know. Why were you keeping this information from us? Tehe.

This is something to consider also.

Go to top


Amiga Package Management
Quite a regular
Quite a regular


Linux apt/debian has a package management system. It means that if I want to download a library then that library has requisites (dependencies) and they are implicitly retrieved and installed.

- Is there a package management system for the Amiga?
- If not, then for those developing using SDL does this mean that you are needing to manually install all the dependencies of - for example - libSDL2_image? i.e. the JPEG libraries/PNG etc
- When linking a program with a mere call to Load_BMP I see that the linker complains about undefined references (hence why I make this thread regarding package management / dependencies). I am surprised though, because I get undefined references to functions that I am not using in my program. I know that there are different implementations of linkers; those that require symbols to ALL functions in the library and those that only need the symbols to those functions used in your application. Is this the way the Amiga is? That all functions must be resolved even if you are not using them?

make
gcc 
--o main.o main.c
gcc 
-use-dynld -o main main.-lSDL2 -lSDL2_image
ld
warninglibpng16.so.16needed by /SDK/local/newlib/lib/libSDL2_image.sonot found (try using -rpath or -rpath-link)
ldwarninglibtiff.so.9needed by /SDK/local/newlib/lib/libSDL2_image.sonot found (try using -rpath or -rpath-link)
ldwarninglibjpeg.so.12needed by /SDK/local/newlib/lib/libSDL2_image.sonot found (try using -rpath or -rpath-link)
ldwarninglibz.so.1needed by /SDK/local/newlib/lib/libSDL2_image.sonot found (try using -rpath or -rpath-link)
ldwarninglibwebp.so.7needed by /SDK/local/newlib/lib/libSDL2_image.sonot found (try using -rpath or -rpath-link)
ldwarninglibpthread.soneeded by /SDK/local/newlib/lib/libSDL2_image.sonot found (try using -rpath or -rpath-link)
/
SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_set_rows@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`jpeg_set_defaults@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_set_write_fn@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_set_interlace_handling@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_write_png@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_get_valid@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `jpeg_read_header@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`jpeg_resync_to_restart@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `jpeg_start_compress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `jpeg_destroy_compress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_get_PLTE@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `WebPDecodeRGBInto'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_read_image@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`jpeg_calc_output_dimensions@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_get_channels@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_set_IHDR@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_create_info_struct@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_create_read_struct@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_set_expand@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`jpeg_CreateCompress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_create_write_struct@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `WebPDecodeRGBAInto'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`jpeg_destroy_decompress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `__NewlibCall@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_get_io_ptr@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_set_packing@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `TIFFClientOpen'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_read_info@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_set_strip_16@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `TIFFClose'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `memcpy@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`jpeg_set_quality@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `jpeg_write_scanlines@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_get_IHDR@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`TIFFReadRGBAImageOriented'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_read_update_info@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_set_PLTE@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_set_gray_to_rgb@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `jpeg_CreateDecompress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `jpeg_finish_decompress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_destroy_write_struct@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_set_longjmp_fn@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `jpeg_read_scanlines@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`jpeg_start_decompress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `png_destroy_read_struct@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `jpeg_finish_compress@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`WebPGetFeaturesInternal'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `jpeg_std_error@LIBJPEG_9.0'
/SDK/local/newlib/lib/libSDL2_image.soundefined reference to `png_get_tRNS@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to 
`png_set_read_fn@PNG16_0'
/SDK/local/newlib/lib/libSDL2_image.so: undefined reference to `TIFFGetField'
make: *** [allError 1


This is SDK 53.30 / gcc 4.2.4 / Native on Amiga X1000 and only with the libSDL2 installed.

I know how to fix this, I am just wondering about answers to my questions above.


Edited by rjd324 on 2022/1/3 3:19:40
Edited by rjd324 on 2022/1/5 12:43:23
Edited by rjd324 on 2023/9/26 19:22:01
Go to top


Re: Radeon R7 250
Quite a regular
Quite a regular


I think the best solution is to find a 290X as @kas1e said.

But, I'll post the candidate on here before I buy it so that you guys can check it.

Will update this thread in due course and continue using my 4650 for now.

Go to top


Re: X1000 occassional hanging
Quite a regular
Quite a regular


I have hacked in some debugging into my SS.

Let me continue using my X1000 as usual and let's see what I get during the SS on a cold boot after leaving it all night. I will update the thread in due course.

@nbache
Earlier you said that you still have this problem that I reported (or a similar problem). Is that still the case, or did you somehow fix it?

Go to top


Re: Backtick on AmigaOne X1000 Keyboard with British keymap
Quite a regular
Quite a regular


@rjd324

Answering my own question.

To anyone else with the same question: Hold down LAmiga whilst pressing the top left key underneath ESC on the original X1000 keyboard!

Go to top


AmigaOne Keyboard: Where is that character keymap
Quite a regular
Quite a regular


Hello, struggling to find the BACKTICK character on my original keyboard when using British layout.

Must I switch to American everytime to do this?

- Can I modify the keyboard in some way whilst in British layout so that I can use the BACKTICK?

EDIT: Changed title to possibly be better for more common searches.


Edited by rjd324 on 2022/1/2 22:57:47
Go to top


Re: X1000 occassional hanging
Quite a regular
Quite a regular


@rjd324

Okay, but you say you also have the same issue with your X1000?

Go to top


Re: Radeon R7 250
Quite a regular
Quite a regular


@Spectre660

Okay, so maybe I will try with that version of the RadeonHD.chip instead.

- I bought the enhancer software V2, do I have access to that version?
- If I downgrade to 2.19, what features am I losing from 3.7?

Go to top


Re: Radeon R7 250
Quite a regular
Quite a regular


@kas1e
Hey, thanks for the information. Potentially saving some money there. So, if I wanted a 250 I would have to ensure that it used "South Island".

Go to top


Radeon R7 250
Quite a regular
Quite a regular


Hello,

I bought an R250 for cheap and thought - if it does not work, it is no big deal.

So, specifically, it is: R7 250A ZL / R7 250A - ZLF V2.1.

Here is the link

I do see "volcanic islands" there, but I also see that the 250 is supported on other Amiga websites.

I first tried to simply swap out my original 4650 with this 250. Booted into workbench and then everything freezes.

I then inserted the 4.1FE CD and it just freezes before booting into WB. The same for the First Contact CD.

Then, I re-inserted the 4650 and here I am writing this thread.

As I say, it is no big loss. I am just wondering if I am doing something wrong.

Thanks.

Go to top


Re: X1000 occassional hanging
Quite a regular
Quite a regular


- Network-Startup:
$VERNetwork-Startup 53.2 (01.06.2011)

AddNetInterface QUIET DEVS:NetInterfaces/~(#?.info)

Add below this line applications that need a running network


- More:
9.Workbench:> ls -l devs:NetInterfaces/
total 11
-rwx------ 1 root wheel   182 Nov 20 23:39 RTL8139
-rw------- 1 root wheel 10086 Nov 20 23:39 RTL8139.info
9.Workbench
:> cat devs/NetInterfaces/RTL8139 
# DEVS:NetInterfaces/RTL8139
# File generated by Dialer 53.2 (3.10.2009)
# On Saturday, 20-Nov-21 at 23:39:40
device=rtl8139.device
unit
=0
address
=192.168.1.55
netmask
=255.255.255.0
9.Workbench
:> version file full Workbench:devs/Networks/rtl8139.device 
rtl8139
.device 53.6 (14/11/2016)
9.Workbench:> version rtl8139.device
rtl8139
.device 53.6

Go to top


Re: X1000 occassional hanging
Quite a regular
Quite a regular


@raziel
1. startup-sequence:
$VERStartup-Sequence 53.12 (26.6.2017)

CD C:

SetPatch QUIET WAITFORVALIDATE

FailAt 21

Version 
>NIL:
SetEnv Workbench $Workbench
SetEnv Kickstart $Kickstart
UnSet Workbench
UnSet Kickstart

MakeDir RAM
:T RAM:Clipboards

Assign 
>NILTRAM:T
Assign 
>NILCLIPSRAM:Clipboards
Assign 
>NILKEYMAPSDEVS:KeyMaps
Assign 
>NILPRINTERSDEVS:Printers
Assign 
>NILREXXS:ARexx
Assign 
>NILHELPLOCALE:Help DEFER
Assign 
>NILAMISSLDEVS:AmiSSL DEFER
Assign 
>NILGHOSTSCRIPTSYS:Utilities/GhostScript DEFER
Assign 
>NILPYTHONSYS:System/Python

LoadMonDrvs
AddDataTypes REFRESH QUIET
IPrefs

USBCtrl START
Mount QUIET DEVS
:DOSDrivers/~(#?.info)

Path RAMCS:Shell S:ARexx PYTHON:Scripts SYS:Utilities SYS:Utilities/Commodities SYS:System SYS:Prefs

ConClip
SYS
:System/RexxMast >NIL:

If 
EXISTS S:User-Startup
  Execute S
:User-Startup
EndIf
If 
EXISTS S:Network-Startup
  Run 
>NIL: <NIL: *>NILExecute S:Network-Startup
EndIf

Makelink RAM:Disk.info ENVARC:Sys/def_RAM.info SOFT

;; RJD PLEASE, do not use APPDIRit is insane
;;Assign >nilexists APPDIR:
;;if 
NOT WARN
;;  Path ADD APPDIR:
;;endif

LoadWB

Run 
>NIL: *>NILSoundPlayer QUIET

EndCLI 
>NIL:

2. user-startup
;BEGIN MUI
If EXISTS SYS:MUI
  C
:Assign >NIL:     MUI:    SYS:MUI
  C
:Assign >NILADD LIBS:   MUI:Libs
  C
:Assign >NILADD LOCALEMUI:Locale
  C
:Assign >NILADD HELP:   MUI:Docs
EndIf
;
END MUI

assign tbimages
SYS:Prefs/Presets/tbimages
;BEGIN MultiEdit
Assign MultiEdit
"SYS:Utilities/MultiEdit"
;END MultiEdit
;BEGIN MultiViewer
Assign MultiViewer
"SYS:Utilities/MultiViewer"
;END MultiViewer

;; RJD samba
ASSIGN SAMBA
C:
;; 
END RJD samba

;BEGIN AmigaOS 4.1 SDK
assign SDK
Programs:SDK
execute SDK
:S/sdk-startup
;END AmigaOS 4.1 SDK

;; RJD mount g8 straight away (wellthere is an in-built delay of 10SECONDS)
;;; 
Not using at the moment because downgraded to 1.74 (but that STILL has the COPY problem on the X1000 for
some reasonTested it on the vampire with smbmounter 1.5 and smbfs 1.74 and it works finewhat the hell is
going on
!?
;;;
RUN >NILOther:Dev/smb_startit/smb_startit rjd g8 //192.168.1.83/gen8
;; END RJD mount g8 straight away

;; SVN
assign subversion
c:
;; 
END SVN

3. wbstartup (not sure if there is a text file for this, so I will just write these down manually). "Show Progress Window" is also enabled
SYS:Utilities/Commodities/AmiDock
SYS
:Utilities/Commodities/AsyncWB
SYS
:Utilities/Commodities/DefIcons
SYS
:Utilities/Commodities/ScreenBlankerEngine
SYS
:Utilities/Commodities/ClickToFront
SYS
:Utilities/Commodities/ContextMenus
SYS
:System/NotificationServer
SYS
:Utilities/Commodities/ClipViewer
SYS
:Utilities/Commodities/Exchanger
SYS
:Utilities/Commodities/InfoWB
SYS
:Utilities/Commodities/TimeGuard
Workbench
:Utilities/LimpidClock


LimpidClock is an obvious candidate to not have startup. I have not tried any further testing yet. I will do in the near future though. I may also want to try the serial debugging in the startup/user-startup to see if I get something similar to you regarding IPrefs?

Go to top


Re: My Experience of Cross Compiling; In This Case: Coreutils to Amiga OS 4 on an X1000
Quite a regular
Quite a regular


@kas1e

You sum it up nicely. Thank you.

I am quite happy for the upcoming challenges.

Go to top


Re: X1000 occassional hanging
Quite a regular
Quite a regular


@abalaban
Sure,

Quote:

PROCESSOR: P.A. Semi PWRficient PA6T-1682M
EMULATED: CPU 68020/68881fpu
CUSTOM CHIPS: NONE
VERSION: Kickstart version 54.30, Exec version 54.30, Disk version 53.18
LEGACY RAM: NONE
ZORRO BOARDS: NONE
PCI BOARDS:
Bus Device Funct. Manuf. Product Status
0x00 0x1D 0x00 0x1959 0xA004 working
0x00 0x1D 0x01 0x1959 0xA004 working
0x00 0x1A 0x00 0x1959 0xA007 working
0x00 0x00 0x00 0x1959 0xA001 working
0x00 0x01 0x00 0x1959 0xA009 working
0x00 0x14 0x03 0x1959 0xA005 working
0x00 0x1C 0x00 0x1959 0xA003 working
0x00 0x1C 0x01 0x1959 0xA003 working
0x00 0x1C 0x02 0x1959 0xA003 working
0x00 0x11 0x03 0x1959 0xA002 working
0x00 0x11 0x02 0x1959 0xA002 working
0x00 0x11 0x01 0x1959 0xA002 working
0x00 0x11 0x00 0x1959 0xA002 working
0x00 0x10 0x02 0x1959 0xA002 working
0x00 0x10 0x00 0x1959 0xA002 working
0x00 0x03 0x00 0x1959 0xA00C working
0x00 0x04 0x00 0x1959 0xA00A working
0x00 0x05 0x00 0x1959 0xA00A working
0x00 0x08 0x00 0x1959 0xA000 working
0x00 0x09 0x00 0x1959 0xA000 working
0x00 0x15 0x00 0x1959 0xA006 working
0x00 0x1B 0x00 0x1959 0xA00B working
0x00 0x1E 0x00 0x1959 0xA008 working
0x0A 0x12 0x00 0x1002 0x4380 working
0x0A 0x13 0x00 0x1002 0x4387 working
0x0A 0x13 0x01 0x1002 0x4388 working
0x0A 0x13 0x02 0x1002 0x4389 working
0x0A 0x13 0x03 0x1002 0x438A working
0x0A 0x13 0x04 0x1002 0x438B working
0x0A 0x13 0x05 0x1002 0x4386 working
0x0A 0x14 0x00 0x1002 0x4385 working
0x0A 0x14 0x01 0x1002 0x438C working
0x0A 0x14 0x02 0x1002 0x4383 working
0x0A 0x14 0x03 0x1002 0x438D working
0x0A 0x14 0x04 0x1002 0x4384 working
0x0C 0x06 0x00 0x10EC 0x8139 working
0x02 0x00 0x00 0x1002 0x9498 working
0x02 0x00 0x01 0x1002 0xAA38 working

Go to top


Re: My Experience of Cross Compiling; In This Case: Coreutils to Amiga OS 4 on an X1000
Quite a regular
Quite a regular


@flash
I agree. Let me quote the relevant part I created:
Quote:

Further, the reason I want to fix CoreUtils for native usage on the AmigaOne is because I like to do everything on my Amiga. I have since heard that people are happy to develop for the Amiga using alternative machine and are happy to X-Compile. Maybe I am just insane, but I like the idea that if I only ever had one computer remaining after a nuclear apocolypse and it was my AmigaOne X1000: I would have the resources to develop to new software for it!

I understand how using an cross-tool-chain is more convenient. Also, how CoreUtils cannot necessarily be trusted when ported to the Amiga. But, there is just something about being able to to do it on the Amiga that I like. This meant the need to have RM -RF working in Makefiles when porting over other projects. Hence why this whole thing started.

It now means that I need my favourite editor / cscope / ctags. So, trying to get a version of Emacs is something that I have to have. I have used Emacs for too long to try anything else because my fingers have now been molested after 12 years of use.

So, what I will try and do in the upcoming days is - on my X1000:
- get the latest SDK installed
- replace the 4.2.4 compiler with a much later version of a compiler,and,
- forcefully overwrite the SDK/CLIB2 with latest one I compiled

@kas1e
Thanks, but this is where I am a little confused. Why is it that I did not know about that? Let me quote my relevant part in the wall of text above:
Quote:

At this point I was under the niave assumption that downloading the latest SDK would be enough, but I was quite wrong! During this experiment, I have realised that people are using a version of CLIB2 that is not within the latest SDK. I have also noticed that people are not using the version of GCC provided with the latest SDK; so, I ask myself, should I have known about this already? For someone new coming to the Amiga scene (niche, I know) would they know that the latest SDK is not really enough? If not, how would they know other than doing what I have done which is to ask on the forums?

You buy an AmigaOne and you download the SDK from Hyperion. Generally, you would assume that is all you need. You do not have any idea that at this point in time everyone is using a totally different version of CLIB2 and different versions of this and that.

I am not criticising, I am just wondering if I have missed something obvious and if I have not I am wondering how we can make it easier for new people coming onboard.

===EDIT===
Actually, there is: https://forum.hyperion-entertainment.com/. This has some interesting information which I could have also used. I will bookmark that page also.


Edited by rjd324 on 2021/12/30 8:20:21
Go to top


Re: X1000 occassional hanging
Quite a regular
Quite a regular


@LiveForIt

Hello,

really? The only thing I have in my BDH0 is my "amigaboot.of" file.

version RadeonHD.chip


proves which version of the "driver" I am using, right? Notice that I am not using
version file RadeonHD.chip

Go to top


Re: APPDIR: and its implicitly created "symbolic links"
Quite a regular
Quite a regular


Hello,

yes, I use 53.12. I have just commented out that section of the startup-sequence.

Regards.

Go to top


Re: Cross Compiling Coreutils to Amiga OS 4 on an X1000
Quite a regular
Quite a regular


Actually, confirmed that RM does now work with the latest SDK (53.34) vs SDK (53.30 for which you needed to separately download CoreUtils and all RM, CP etc went through the "coreutils" binary). I literally just wasted a few days of my life. But, I guess I learned a lot.

Go to top


Re: Cross Compiling Coreutils to Amiga OS 4 on an X1000
Quite a regular
Quite a regular


Okay, so here is the update:

======Update======
So, the issue regarding gethostname is solved by using -D__NO_NET_API, and Olaf uses this regularly in his other projects.

This means that it should be:
./configure --host=ppc-amigaos CFLAGS="-mcrt=clib2 -D__NO_NET_API"

Getting us further to:
CC       lib/gettime.o
lib
/gettime.cIn function 'gettime':
lib/gettime.c:43error'struct rpl_timespec' has no member named 'tv_secs'

We still have this issue regarding "tv_secs" to solve.
Quote:

PRESUMPTION: I got help looking at Olafs Makefile.os4 from his SMBFS project. I should continue to look at what other options he is using for that project (as an idea)


*** TODO: Figure out the issue with 'tv_secs'.
*** __USE_OLD_TIMEVAL__ is used in a lot of Amiga projects I can see on GitHub. Look at https://wiki.amigaos.net/wiki/Programm ... _-_The_Data_Administrator and search for OLD_TIME - You can see that the Amiga is incompatible. Again, somewhere in the configuration I need to sort something out!
---> Okay, I noticed that at some point (2017-ish) struct timespec was added to CLIB2 include/time.h. I decided to keep the old clib2 as it was and just copy over that particular change to the time.h file. So, at this point we have solved the gethostname and the tv_secs issue. (Hack NUMBER -1)

Clearly, some version of something is incompatible. After that, I received an error about the usage of C99 type of for loop, this can be corrected. But, if the compiler is not C99 then surely coreutils was not built with 4.2.4!

So, I will hack in the pre c-99 change to the for loop in: lib/secure_getenv.c:87 (Hack always needed NUMBER 0)

Now we get the error:
CC       lib/time_rz.o
In file included from lib
/time_rz.c:30:
/
opt/ppc-amigaos/ppc-amigaos/SDK/clib2/include/stdbool.h:58:2warning#warning C99 header file used by non-C99 compliant compiler.
lib/time_rz.c:39error: static declaration of 'rpl_tzset' follows non-static declaration
/opt/ppc-amigaos/ppc-amigaos/SDK/clib2/include/time.h:126errorprevious declaration of 'rpl_tzset' was here
Makefile
:7666recipe for target 'lib/time_rz.o' failed

To get around that, I just defined TZSET in or around 30 of time_rz. (Hack always needed NUMBER 1).

Then,
undefined referenced to some wide char function. This confirms that you really do need to link with libwide.a as specified in the readme file.

***Currently trying to add -lwide to the LIBS passed to ./configure.
So, this gets passed the error regarding strings, but the WIDE library relies on 'strnlen' which is not even included in the generated SDK version created via the X-compile tool chain build! This means that we have to update the version of the SDK/clib2 library since newer version include 'strnlen'.

*** So, we will no longer need hack NUMBER -1 since a newer clib2 will also include a definition for struct timespec (something that was added to clib2 also). AND SO, we end up going back to the fact of the bottom of README.os4 for CoreUtils which says: you need libwide and the "latest" clib2 version on github [although, the latest version at the time of that writing for 2017].

==So, let's use the latest clib2 - this may include compiling it===
NOTE: Even the latest clib2 from 53.34 (latest SDK) does not include strnlen. But, the git-hub master version does.

***TODO: Compile the latest clib2 from the git-hub master as referenced in the readme guide. Expect to fix NUMBER 0 and perhaps NUMBER 1 and then rebuild and see what happens. [[[DONE]]]

***** It is clear that this was never compiled with GCC 4.2.4 and since the wide library (libwide.a) uses strnlen it is also clear that we need the non-official clib2 included in even the latest SDK. clib2 on the github does include strnlen. Fact is, when you put the pieces together, I have realised that you need 1. a newer compiler with c99 and 2. the github version of CLIB2 3. yeah, libwide.a also.

So now: let's compile the latest CLIB2 (github), with the old 4.2.4 GCC compiler (we need to remove force aggressive loop option) and see what happens when we just drop the newly compiled CLIB2 into the older SDK location in /opt/ppc-amigaos. This will not result in not needing to do all of the hacks since, at the very least, we are using a non-c99 compiler!

===Compiling new Clib2 from GitHub===
This seemed to compile, but I am using the old 4.2.4 compiler which I should not! Anyway, it just compiled and I can see the libraries

***TODO: Put the built clib2 into the ppc-amigaos directory in chroot /opt/ppc* and see what the hell happens! I am only replacing the clib2 within the SDK directory, that may be an issue ... ? If that does not work, then put the latest SDK in there as well.

==> And so, this seems to have improved things. But there are more undefined references requiring the addition of "-lnet -lunix" so far. Also, using the latest clib2 resulted in me not needing to worry about non-C99 compliancy.

But this leads to: __huge_val being undefined. I think we are missing "-lm" also. So, let's try that...

===SUMMARY===
So, I finally got CoreUtils to compile. I wanted to do that because I noticed that with the latest CoreUtils.lha from OS4Depot RM -RF was not working. I would like someone else to confirm this though. So, if anyone can just create a directory and touch a file in that directory and then run RM -RF on that directory, can you confirm that this does not work. It was not for me; see also (https://github.com/adtools/coreutils/issues/1). What I wanted to do was to fix this issue. Since this required the source code I set about finding the CoreUtils source code and I found it on GitHub. At this point I was under the niave assumption that downloading the latest SDK would be enough, but I was quite wrong! During this experiment, I have realised that people are using a version of CLIB2 that is not within the latest SDK. I have also noticed that people are not using the version of GCC provided with the latest SDK; so, I ask myself, should I have known about this already? For someone new coming to the Amiga scene (niche, I know) would they know that the latest SDK is not really enough? If not, how would they know other than doing what I have done which is to ask on the forums? Further, the reason I want to fix CoreUtils for native usage on the AmigaOne is because I like to do everything on my Amiga. I have since heard that people are happy to develop for the Amiga using alternative machine and are happy to X-Compile. Maybe I am just insane, but I like the idea that if I only ever had one computer remaining after a nuclear apocolypse and it was my AmigaOne X1000: I would have the resources to develop to new software for it!

When I noticed that RM -RF was not working, I tried to just download CoreUtils and build it on my Amiga. But, the very use of RM -RF in the Makefile itself caused issues.

So, what did I do?
- I said, let's use my Linux system which already has the tools on it (albeit, a very slow machine)
- Downloaded CoreUtils from https://github.com/adtools/coreutils/
- Used the README.os4 in there and took inspiration from the last entry which said:
Quote:

6-08-2017 - Version 54.1
Coreutils 8.29 source used for the port
The sourcecode for Sort and Split have been replaced with the old 5.2.1-9 code.
To compile you need libwide found on http://os4depot.net and the current clib2 code from http://github.com/adtools/clib2

- Realised that I would need a CrossCompiler to do this: I assumed that "adtools" was the main place. And I saw https://github.com/adtools/amigaos-cross-toolchain.
- Realised in the https://github.com/adtools/amigaos-cross-toolchain/ README.md says: you shall use a GCC 5.X compiler with 32-bit libs
- Decided to create a CHROOT on my Linux machine using Xenial 32 bit since that also came with GCC 5.x out of the box
- Built the ppc-amigaos-* tool chain and installed to the default /opt/ppc-amigaos
- The above point means that I have the default GCC 4.2.4 with an older version of the SDK which is purely from Hyperion.
- Then, I cloned the CoreUtils from the GitHub
- ./configure --host=ppc-amigaos
- Bumped into a number of issues along the way (see above)
- required -D__NO_NET_API
- required fixing C99 for-loops since the build process believed that this was a non-C99 compiler
- Realised that I really did need libwide.a as suggested in the README.os4 fle from the CoreUtils
- Realised that libwide was using 'strnlen' that was not even in CLIB2 using the latest SDK, and so:
- Realised that I needed to upgrade the CLIB2 version using the CLIB2 on the GitHub [https://github.com/adtools/clib2] (since the Hyperion official one did not have the necessary features)
- Compiled the latest CLIB2 from GitHub
- So, I kept the original /opt/ppc-amigaos/ etc files that were installed via the cross-compiler build above, but simply replaced SDK/CLIB2 with the newly compiled one
- Realised that I needed to use "-lnet -lunix -lm -lwide -lc"
/configure --host=ppc-amigaos CFLAGS="-mcrt=clib2 -D__NO_NET_API" LIBS=-"lwide -lc -lnet -lunix -lm" && make

- Finally compiled CoreUtils

===RESULT===
So, I SCP the freshly compiled RM to my Amiga X1000 and just try it out out of curiosity and it works! Now, my RM compiled will actually work correctly if there is something in a test directory.

=======

So, I am wondering if someone can test out RM using CoreUtils supplied through AmigaOS 4 Depot.

Regards.

===EDIT===
I may have just realised that the latest SDK does not need CoreUtils. Looks like the latest SDK has separate binary for RM, CP etc vs the older SDK (as of last week) which all went through the "coreutils" binary.


Edited by rjd324 on 2021/12/30 1:07:25
Go to top



TopTop
« 1 ... 40 41 42 (43) 44 »




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project