gccsdk error
Pages: 1 2
ivelegacy (2674) 139 posts |
hi guys internal error abort on data transfer & 0000000 i have ROM v4.02, soft load to 4.39 when i open the RiscOS shell and i type “gcc -v” i got that error what’s wrong ? following this guide |
Ronald May (387) 407 posts |
i am trying to instal gccsdk and i got this error You mentioned merging !System modules, but have you installed !SharedLibs in a place where it will be seen. One such place is the !Boot.Resources directory. Otherwise double clicking on !SharedLibs first will let it be found. I would have thought the error would be more informative though. |
ivelegacy (2674) 139 posts |
i also tried gcc v3.4.6 and 4.1.1 they say “not enough memory, application requires 4-6Mbyte” |
ivelegacy (2674) 139 posts |
> You mentioned merging !System modules, but have you installed !SharedLibs in a place where it will be seen. done, they are inside the gcc-4.7.4 folder > Otherwise double clicking on !SharedLibs first will let it be found. already done, clicked on > I would have thought the error would be more informative though. no more info from the shell, unfortunately > Have you made a wimpslot big enough for running !GCC? what is wimpslot ? edit is it possible to make it permeant ? i mean 8Mbyte always allocated to gcc ? |
Ronald May (387) 407 posts |
is it possible to make it permeant ? i mean 8Mbyte always allocated to gcc ? There is a few ways to do this, perhaps you could start with adding a line like Can somebody supply a link to the RISC OS welcome guide or RISC OS User guide perhaps? Otherwise you’ll have to find individual’s sites with RISC OS tutorials. The Archive DVD is packed with articles and is a bargain. There are worthwhile online publications too. |
Theo Markettos (89) 919 posts |
I think a recent OS will automatically extend the wimpslot if you *something and the current task doesn’t have enough memory. But that’s not much help here. It should also be said that the simplest way to change the memory allocated to subsequent task(s) you run is to drag the Next bar in the Task Manager. If you want to make it semi-permanent you could do is *WimpSlot -next 8192K and put that in !Boot.Choices.Boot.Tasks or similar. That will set the ‘default’ Next slot – but you can still drag it with the Task Manager to change it. Be aware if you run lots of Task Windows that this will cause you to run out of memory eventually though, as each will get allocated 8MB. Are you using a Task Window or a ShellCLI prompt (by pressing F12)? I can’t remember what ShellCLI does about memory. |
ivelegacy (2674) 139 posts |
i am using ShellCLI |
Ronald May (387) 407 posts |
I have just noticed trying this with gcc and for some reason, it will only work if you dont use the extra % (which is normal use within an alias). |
David Pitt (102) 743 posts |
Using ‘wget’ as an example, this is in its !Boot obey file :-
Inspect what the alias has actually been set to in a TaskWindow :- *show *wget* Alias$wget : WimpSlot -min 2154k|MRun SDFS::RISCOSpi.$.Boot.Resources.ToBeBoots.!Wget.wget %*0 There is a very exact answer to this apparent conundrum which is incompatible with the forgetful brain. Approximately then the Obey file is passed to GSTrans and the trailing argument needs to be ‘escaped’ whereas a directly entered command is just that, no GSTrans that is. See “Command scripts” in the PRMs Vol 4. |
Colin (478) 2433 posts |
If you don’t use the extra % the %*0 will be filled in with any arguments to the obey file where you created your alias. Assuming there aren’t any, your alias becomes
Try show ‘alias$flac’ Note the space at the end of the alias – it won’t work without it because the alias expansion adds all arguments after the last argument used in the alias to the end of the alias. For example if at a command line you put – the quote marks are so you can see the spaces and the line after the alias call is the output from the alias:
%%*0 should work. If you replace Run in your alias with echo you will see how the alias is expanded. |
ivelegacy (2674) 139 posts |
i am shocked, there is no gcc working on my system! i have installed
|
Theo Markettos (89) 919 posts |
Try this: 2.95 is hopelessly out of date, but you should be OK with 3.x or 4.×. To be clear, you have a folder called ‘c’ and a file called ‘hello’ (no extension) inside it? How much RAM do you have? |
ivelegacy (2674) 139 posts |
hi it seems the problem is the UnixLibrary, i have installed a new one (the last one available) clearing everything in the !Boot i have installed gcc 3.4.6, everything in the 4.* is crashing with “internal error when transferring ….” i have an example called hAllo, it’s in the hAllo folder /examples/hAllo C/hAllo is something like #include i have changed the “current working directory” to /examples/hAllo i invoked i got a binary fine that is working as expected gcc v4.* is not working at all also, it seems i can’t invoke “FileCore”, that is a UNIX support, something like “ls, cd, mkdir” i think i need a bit of voodoo X____X to summarize, i had success everything else fails |
ivelegacy (2674) 139 posts |
something strange happens if invoke “fileCore” (from PackMan). This application contains “ls, cd, mkdir, ecc”, something like Unix support: if i invoke it then i am not able to compile anything with gcc A) WITHOUT! invoking fileCore B) invoking fileCore (e.g. indirectly called when you type “ls” ) i found documentation for sharedclibrary , but i am not able to understand the error i get |
Ronald May (387) 407 posts |
%%*0 should work Colin you may have misunderstood me, the flac example is working fine, it is when Edit: Just read Davids post a second time and it clicked, that I was setting the alias at the command line rather than in an Obey file, That is the difference, solving my puzzle. |
Colin (478) 2433 posts |
In that case you still have me confused. Is the alias created in an obey file or at the command line? The error you get implies that you are creating it at the command line as you only need a single % when creating an alias from the command line. |
Ronald May (387) 407 posts |
The error you get implies that you are creating it at the command line as you only need a single % when creating an alias from the command line. Yes that is it exactly, thanks. |
ivelegacy (2674) 139 posts |
good idea, i have put the “Alias” inside the boot script: it’s working marvelous with gcc v3.4.6 =D |
Ronald May (387) 407 posts |
I have downloaded the GCC4_4/7/4-Rel-1/zip package from riscos.info and it /does/ error with Edit: I noticed there is a specific !SharedLibs for 4.7.4 but that doesn’t seem to help, I’ll try rebooting. |
Ronald May (387) 407 posts |
something strange happens if invoke “fileCore” (from PackMan). This application contains “ls, cd, mkdir, ecc”, something like Unix support: if i invoke it then i am not able to compile anything with gcc I think you are talking about !CoreUtils package here. I can remember a problem with !CoreUtils setting variables/alias that conflict with existing RISC OS commands. Once that is fixed I think it behaves OK. |
David Pitt (102) 743 posts |
gcc 4.7.4 release 1 is OK here on both the Raspberry Pi and OS4.39 VRPC. As expected it needs a 6MB WimpSlot to do !SharedLibs is version dependent, but if gcc cannot find the requisite libraries it does error to that effect. The library file names are different so it is sufficient to drop the new !SharedLibs over the old. I have one copy of !SharedLibs in !Boot.Resources and can run either gcc 4.7.4r1 or 4.1.2r2. (just in case it is relevant nothing earlier than 4.1.2r2 has been on either machine.) I have just downloaded a fresh gccsdk-gcc-bin-4.7.4-Rel1.zip from http://www.riscos.info/downloads/gccsdk/latest/ and that is all good too. Some diagnostics :- *show gcc* GCC$Description : C/C++ compiler and development suite GCC$Dir : SCSI::SSD120.$._Temp.!GCC gcc$heap : GCC$Help : SCSI::SSD120.$._Temp.!GCC.docs.index/html GCC$Publisher : GCCSDK Developers GCC$Title : GCC GCC$Version : 4.7.4 Release 1 GCC$Web : <a href="http://gccsdk.riscos.info/">http://gccsdk.riscos.info/</a> GCCbin$Path : SCSI::SSD120.$._Temp.!GCC.bin. GCCSOLib$Path : SharedLibs:lib., *show SharedLibs* SharedLibs$Dir : SDFS::RISCOSpi.$.!BOOT.Resources.!SharedLibs SharedLibs$Path : SDFS::RISCOSpi.$.!BOOT.Resources.!SharedLibs. * |
Dave Higton (1515) 3534 posts |
I had the briefest of plays with GCC 4.7.4 last night on my Iyonix with RO 5.22. I deleted all my installations of earlier versions, then installed the GCC binaries and the shared libraries app. My !System and UnixHome were already up to date so I didn’t need to install them. I just compiled the HelloWorld example in RAM disc with a command line something like: gcc RAMdisc0.$.c.helloworld -mlibscl -O3 -o RAMdisc0.$.hello (I apologies for any errors – that’s from memory and I’m not in a position to try it here and now). Anyway, the result was an app that did what you’d expect. As an aside, the first time I tried it, I didn’t put in the -mlibscl (or -O3) arguments, and, when I clicked the mouse after the app had run, it took the Iyonix down. I can confirm that 10240 kiB was not a big enough Wimpslot to compile it, but 15360 kiB was. |
David Pitt (102) 743 posts |
Hmm!! The command below produced a non-crashing ELF non the Raspberry Pi. gcc RAM::RamDisc0.$.c.CHello -o RAM::RamDisc0.$.Hello Some ELF diagnostics :- *show *E1F* Alias$@RunType_E1F : SOMRun %*0 File$Type_E1F : ELF * *help SOManager ==> Help on keyword SOManager Module is: Shared Object Manager 2.10 (01 Dec 2014) (c) GCCSDK Developers Commands provided: SOMStatus SOMAddress SOMExpire SOMAllowQuit SOMRun SOMHistory * |
Ronald May (387) 407 posts |
I sidelined the old !SharedLibs and used the new downloads and things are working now. I better scoot back over to the mailing list and undo the false report. |
ivelegacy (2674) 139 posts |
> I think you are talking about !CoreUtils package here. can you tell me more ? if i invoke !CoreUtils (that is the right name, i had “renamed”), |
Pages: 1 2