Discussion:
GCC_SURGE catchup (Mike Kinghan)
Mike Kinghan
2010-11-22 10:05:04 UTC
Permalink
Hi Mike
I;d like to try to build the beagle on linux with GCC.. Follow the
instructions from
http://developer.symbian.org/wiki/How_to_build_and_run_a_Symbian_QEMU_ROM_with_GNU/Linux_tools
I can't find how to build the image.. but from below I can see that you've
done it.
On Linux, the GCC Raptor build will generate the beagle ROM image itself, as
it should. On Windows, the Raptor rom build fails because rom_sbs.pl fails
to find the tshell.oby file.

You can quickly get the Windows rom build to work like this:-

In epoc32\tools\makefile_templates\base\rom.flm, change:

ifeq ($(OSTYPE),unix)
rombuilder := $(EPOCROOT)/epoc32/rom/tools/romnibus.pl
else
+ rombuilder := $(EPOCROOT)/epoc32/rom/tools/romnibus.pl
- rombuilder := $(EPOCROOT)/sf/os/kernelhwsrv/kernel/eka/rombuild/
rom_sbs.pl
endif

i.e. you use the same rom builder for Windows as for Linux.
I have just merged few fixes from 'generic_fixes_and_updated' branch back
to default.. one of which fixes assertions you've listed below
( *Bug 3923* <http://developer.symbian.org/bugs/show_bug.cgi?id=3923> - medstaticrd
is crashing the board during bootup )
..and the other one ( *Bug 3913*<http://developer.symbian.org/bugs/show_bug.cgi?id=3913>- beagleboard
crashes on cold boot-up ) - the annoying 'cold boot crash'
Anyway - with these fixes GCC build might actually boot - and I'd give it a
try.. :)
The GCC beagle tshell ROM already boots fine, both Linux and Windows builds,
but I will merge your latest default tip back to the GCC_SURGE branch and
see how that goes.
DO you think it's OK to merge GCC_SURGE to default? I've also merged the
two other branches I was using. This might help / easy moving the repo /
sources to some other location (i.e. in case only sources were moved to the
new repository in some extreme case) - and also to move some 'work' back to
default.
I'd love to do that consolidation. It would put us in a strong position for
moving to GCC as the official compiler.

However, before doing that I would like to see that we can build and boot a
beagle tshell rom from the GCC_SURGE branches of beagleboard and kernelhwsrv
with *RVCT4* and PDK 3.0.4 binaries (i.e. the GCC_SURGE branches are
compatible with the status quo). I have tried that. The rom build works, but
the ROM crashes on boot:

OMAP3 beagleboard.org # go 0x81000000
## Starting application at 0x81000000 ...
MODE_USR:
R0=c80c0000 R1=dededec6 R2=1c1c1c1c R3=1c1c1c1c
R4=1c1c1c1c R5=1c1c1c1c R6=1c1c1c1c R7=1c1c1c1c
R8=1c1c1c1c R9=1c1c1c1c R10=c808fc80 R11=c808fc60
R12=00dedbdb R13=00000000 R14=00000000 R15=8000b12c
CPSR=20000113
MODE_FIQ:
R8=c80834e4 R9=ffffffff R10=00000004 R11=00000002
R12=81001bcc R13=c003c000 R14=81000960 SPSR=00000000
MODE_IRQ:
R13=c003a000 R14=00000000 SPSR=00000000
MODE_SVC:
R13=c808eb80 R14=8007b1c8 SPSR=00000000
MODE_ABT:
R13=c003fc00 R14=8000b12c SPSR=20000113
MODE_UND:
R13=c003e000 R14=4020ffcc SPSR=00000000
TEEHBR=00000000 CPACR=00f00000
SCTLR=30c5387f ACTLR=00000072 PRRR=000a00a4 NMRR=00400040
DACR=00000001 TTBR0=80000018 TTBR1=80000018 TTBCR=00000001
VBAR=00014000 FCSEID=00000000 CTXIDR=00000000
Thread ID RWRW=00000000 RWRO=00000000 RWNO=00000000
DFSR=00000807 DFAR=c80c0000 IFSR=00000000 IFAR=00000000
ADFSR=00000000 AIFSR=00000000
FPEXC 0000000a
ExcCode 00000001
FAULT: Exception 0x10000000 (268435456)

This is a data abort at DFAR=c80c0000. That's as far as I've got. I'll do a
catchup and see if its still there before anything else.

I recall that the RVCT build emitted numerous warnings like "target of
branch is a data address". Might be relevant.

Also, an important difference between the GCC rom and the RVCT rom is that
the GCC build excludes hardware vfp math support and the RVCT build includes
it.
Thanks
Lukasz.
Send Wild-ducks mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
http://developer.symbian.org/mailman/listinfo/wild-ducks
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Wild-ducks digest..."
1. GCC_SURGE catchup (Mike Kinghan)
---------- Wiadomo¶æ przekazana dalej ----------
Date: Wed, 17 Nov 2010 11:15:51 +0000
Subject: [Wild-ducks] GCC_SURGE catchup
The GCC_SURGE branch of beagleboard was 3.5 months stale. I have merged it
up to the default tip, with necessary fixes for Linux portability and for
GCCE's lack of vfp math support. The ROM builds but I haven't tried to boot
it yet - next.
--
Mike Kinghan,
Test Lead, Symbian
+44(0)776 5222 793
Symbian Foundation Limited is a Company Limited by Guarantee and not having Share Capital
We're registered in England and Wales - Companies House knows us by the number 6683783
Our address is 1 Boundary Row, Southwark, London SE1 8HP.
_______________________________________________
Wild-ducks mailing list
http://developer.symbian.org/mailman/listinfo/wild-ducks
--
Mike Kinghan,
Test Lead, Symbian
+44(0)776 5222 793


Some facts about Symbian that we are legally obliged to tell you:
Symbian Foundation Limited is a Company Limited by Guarantee and not having Share Capital
We're registered in England and Wales - Companies House knows us by the number 6683783
Our address is 1 Boundary Row, Southwark, London SE1 8HP.
Lukasz Forynski
2010-11-22 12:11:52 UTC
Permalink
Hi Mike,

I've been mostly using RVCT4.0 to build the beagle and kernelhwsrv. I have
been successful up till now - where using 3.0.4 was having these errors I've
sent question about in the other email (i.e. The kernelhwsrv builds fine
with 3.0.4, but beagleboard had a problem with:
/epoc32/tools/makefile_
templates/base/bootstrap.flm:163: *** target pattern contains no `%'. Stop.

adding following to the omap3530\beagleboard\bld.inf seem to have helped and
RVCT4.0 build for kernelhwsrv + beagleboard with 3.0.4 tools builds and
boots fine (tshell rom).

+start extension base.bootstrap bootstrap
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+option INC_PATH /epoc32/include
+#else
+option INC_PATH /epoc32/include/platform
+#endif
+#ifdef GCCE
+option GCCE GCCE
+#endif
+#ifdef ARMCC
+option ARMCC ARMCC
+#endif
+option NAME _beagle_bootrom
+option CPU arm
+option MEMMODEL Multiple
+option SOURCES ./bootstrap/beagle.s
+option EXTRA_SRC_PATH ./bootstrap
+option EXTRA_INC_PATH ./bootstrap
+option INCLUDES ./bootstrap/config.inc
+option E32PATH ../../../../os/kernelhwsrv/kernel
+end

But it is/was all fine with RVCT4.0 and 3.0.3 tools without the above
change.


I know also, that kernel build warnings for RVCT that look like:
"Z:\sf\os\kernelhwsrv\kernel\eka\common\arm\atomic_32_v6.h", line 241:
Warning: A1495E: Target of branch is a data address
241 000008fc bne %B1
Can be safely ignored - the compiler simply doesn't seem to like labels that
are numbers, e.g.:

bne 1f
...
1:

I have tried to change numeric labels to words/letter containing ones few
years ago (yes - I must have been bored trying that) - and that seemed to
help - but nobody seems to bother to update the kernel like that - it's
probably already 'understandable/known' as it is - so I doubt if someone
could give a strong argument to kernel guys that meaningful labels should be
used to fix these warnings ;)

Other 'Target branch is a data address' warnings refer to the not-supported
mnemonics for assembly, that are implemented using opcodes, i.e code like.:

#if __ARM_ASSEMBLER_ISA__ >= 6
#define CLREX asm("clrex ")
#else
#define CLREX asm(".word %a0" : : "i"
((TInt)(0xf57ff01f)));

(or many others, eg. VFP instructions)
- these warnings can also be ignored I believe.

Cheers,
Lukasz.



W dniu 22 listopada 2010 10:05 u¿ytkownik Mike Kinghan
Hi Mike
I;d like to try to build the beagle on linux with GCC.. Follow the
instructions from
http://developer.symbian.org/wiki/How_to_build_and_run_a_Symbian_QEMU_ROM_with_GNU/Linux_tools
I can't find how to build the image.. but from below I can see that you've
done it.
On Linux, the GCC Raptor build will generate the beagle ROM image itself,
as it should. On Windows, the Raptor rom build fails because rom_sbs.plfails to find the tshell.oby file.
You can quickly get the Windows rom build to work like this:-
ifeq ($(OSTYPE),unix)
rombuilder := $(EPOCROOT)/epoc32/rom/tools/romnibus.pl
else
+ rombuilder := $(EPOCROOT)/epoc32/rom/tools/romnibus.pl
- rombuilder := $(EPOCROOT)/sf/os/kernelhwsrv/kernel/eka/rombuild/
rom_sbs.pl
endif
i.e. you use the same rom builder for Windows as for Linux.
I have just merged few fixes from 'generic_fixes_and_updated' branch back
to default.. one of which fixes assertions you've listed below
( *Bug 3923* <http://developer.symbian.org/bugs/show_bug.cgi?id=3923> - medstaticrd
is crashing the board during bootup )
..and the other one ( *Bug 3913*<http://developer.symbian.org/bugs/show_bug.cgi?id=3913>- beagleboard
crashes on cold boot-up ) - the annoying 'cold boot crash'
Anyway - with these fixes GCC build might actually boot - and I'd give it
a try.. :)
The GCC beagle tshell ROM already boots fine, both Linux and Windows
builds, but I will merge your latest default tip back to the GCC_SURGE
branch and see how that goes.
DO you think it's OK to merge GCC_SURGE to default? I've also merged the
two other branches I was using. This might help / easy moving the repo /
sources to some other location (i.e. in case only sources were moved to the
new repository in some extreme case) - and also to move some 'work' back to
default.
I'd love to do that consolidation. It would put us in a strong position for
moving to GCC as the official compiler.
However, before doing that I would like to see that we can build and boot
a beagle tshell rom from the GCC_SURGE branches of beagleboard and
kernelhwsrv with *RVCT4* and PDK 3.0.4 binaries (i.e. the GCC_SURGE branches
are compatible with the status quo). I have tried that. The rom build works,
OMAP3 beagleboard.org # go 0x81000000
## Starting application at 0x81000000 ...
R0=c80c0000 R1=dededec6 R2=1c1c1c1c R3=1c1c1c1c
R4=1c1c1c1c R5=1c1c1c1c R6=1c1c1c1c R7=1c1c1c1c
R8=1c1c1c1c R9=1c1c1c1c R10=c808fc80 R11=c808fc60
R12=00dedbdb R13=00000000 R14=00000000 R15=8000b12c
CPSR=20000113
R8=c80834e4 R9=ffffffff R10=00000004 R11=00000002
R12=81001bcc R13=c003c000 R14=81000960 SPSR=00000000
R13=c003a000 R14=00000000 SPSR=00000000
R13=c808eb80 R14=8007b1c8 SPSR=00000000
R13=c003fc00 R14=8000b12c SPSR=20000113
R13=c003e000 R14=4020ffcc SPSR=00000000
TEEHBR=00000000 CPACR=00f00000
SCTLR=30c5387f ACTLR=00000072 PRRR=000a00a4 NMRR=00400040
DACR=00000001 TTBR0=80000018 TTBR1=80000018 TTBCR=00000001
VBAR=00014000 FCSEID=00000000 CTXIDR=00000000
Thread ID RWRW=00000000 RWRO=00000000 RWNO=00000000
DFSR=00000807 DFAR=c80c0000 IFSR=00000000 IFAR=00000000
ADFSR=00000000 AIFSR=00000000
FPEXC 0000000a
ExcCode 00000001
FAULT: Exception 0x10000000 (268435456)
This is a data abort at DFAR=c80c0000. That's as far as I've got. I'll do a
catchup and see if its still there before anything else.
I recall that the RVCT build emitted numerous warnings like "target of
branch is a data address". Might be relevant.
Also, an important difference between the GCC rom and the RVCT rom is that
the GCC build excludes hardware vfp math support and the RVCT build includes
it.
Thanks
Lukasz.
Send Wild-ducks mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
http://developer.symbian.org/mailman/listinfo/wild-ducks
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Wild-ducks digest..."
1. GCC_SURGE catchup (Mike Kinghan)
---------- Wiadomo¶æ przekazana dalej ----------
Date: Wed, 17 Nov 2010 11:15:51 +0000
Subject: [Wild-ducks] GCC_SURGE catchup
The GCC_SURGE branch of beagleboard was 3.5 months stale. I have merged
it up to the default tip, with necessary fixes for Linux portability and for
GCCE's lack of vfp math support. The ROM builds but I haven't tried to boot
it yet - next.
--
Mike Kinghan,
Test Lead, Symbian
+44(0)776 5222 793
Symbian Foundation Limited is a Company Limited by Guarantee and not having Share Capital
We're registered in England and Wales - Companies House knows us by the number 6683783
Our address is 1 Boundary Row, Southwark, London SE1 8HP.
_______________________________________________
Wild-ducks mailing list
http://developer.symbian.org/mailman/listinfo/wild-ducks
--
Mike Kinghan,
Test Lead, Symbian
+44(0)776 5222 793
Symbian Foundation Limited is a Company Limited by Guarantee and not having Share Capital
We're registered in England and Wales - Companies House knows us by the number 6683783
Our address is 1 Boundary Row, Southwark, London SE1 8HP.
Mike Kinghan
2010-11-22 16:25:26 UTC
Permalink
I've caught up the GCC_SURGE branch from your default tip again. Linux and
Windows builds still boot fine. The boot time assert failures are gone. The
RVCT 4 build from the GCC_SURGE branch with 3.0.4 binaries still faults on
boot as before.

Had to comment out your workaround for bootstrap.flm problems because that
flm isn't in the buildtools GCC_SURGE branch. So built with the existing
GCC_SURGE bootstrap.mk.
Post by Lukasz Forynski
Hi Mike,
I've been mostly using RVCT4.0 to build the beagle and kernelhwsrv. I have
been successful up till now - where using 3.0.4 was having these errors I've
sent question about in the other email (i.e. The kernelhwsrv builds fine
/epoc32/tools/makefile_
templates/base/bootstrap.flm:163: *** target pattern contains no `%'.
Stop.
adding following to the omap3530\beagleboard\bld.inf seem to have helped
and RVCT4.0 build for kernelhwsrv + beagleboard with 3.0.4 tools builds and
boots fine (tshell rom).
+start extension base.bootstrap bootstrap
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+option INC_PATH /epoc32/include
+#else
+option INC_PATH /epoc32/include/platform
+#endif
+#ifdef GCCE
+option GCCE GCCE
+#endif
+#ifdef ARMCC
+option ARMCC ARMCC
+#endif
+option NAME _beagle_bootrom
+option CPU arm
+option MEMMODEL Multiple
+option SOURCES ./bootstrap/beagle.s
+option EXTRA_SRC_PATH ./bootstrap
+option EXTRA_INC_PATH ./bootstrap
+option INCLUDES ./bootstrap/config.inc
+option E32PATH ../../../../os/kernelhwsrv/kernel
+end
But it is/was all fine with RVCT4.0 and 3.0.3 tools without the above
change.
Warning: A1495E: Target of branch is a data address
241 000008fc bne %B1
Can be safely ignored - the compiler simply doesn't seem to like labels
bne 1f
...
I have tried to change numeric labels to words/letter containing ones few
years ago (yes - I must have been bored trying that) - and that seemed to
help - but nobody seems to bother to update the kernel like that - it's
probably already 'understandable/known' as it is - so I doubt if someone
could give a strong argument to kernel guys that meaningful labels should be
used to fix these warnings ;)
Other 'Target branch is a data address' warnings refer to the not-supported
#if __ARM_ASSEMBLER_ISA__ >= 6
#define CLREX asm("clrex ")
#else
#define CLREX asm(".word %a0" : : "i"
((TInt)(0xf57ff01f)));
(or many others, eg. VFP instructions)
- these warnings can also be ignored I believe.
Cheers,
Lukasz.
Hi Mike
I;d like to try to build the beagle on linux with GCC.. Follow the
instructions from
http://developer.symbian.org/wiki/How_to_build_and_run_a_Symbian_QEMU_ROM_with_GNU/Linux_tools
I can't find how to build the image.. but from below I can see that
you've done it.
On Linux, the GCC Raptor build will generate the beagle ROM image itself,
as it should. On Windows, the Raptor rom build fails because rom_sbs.plfails to find the tshell.oby file.
You can quickly get the Windows rom build to work like this:-
ifeq ($(OSTYPE),unix)
rombuilder := $(EPOCROOT)/epoc32/rom/tools/romnibus.pl
else
+ rombuilder := $(EPOCROOT)/epoc32/rom/tools/romnibus.pl
- rombuilder := $(EPOCROOT)/sf/os/kernelhwsrv/kernel/eka/rombuild/
rom_sbs.pl
endif
i.e. you use the same rom builder for Windows as for Linux.
I have just merged few fixes from 'generic_fixes_and_updated' branch back
to default.. one of which fixes assertions you've listed below
( *Bug 3923* <http://developer.symbian.org/bugs/show_bug.cgi?id=3923> - medstaticrd
is crashing the board during bootup )
..and the other one ( *Bug 3913*<http://developer.symbian.org/bugs/show_bug.cgi?id=3913>- beagleboard
crashes on cold boot-up ) - the annoying 'cold boot crash'
Anyway - with these fixes GCC build might actually boot - and I'd give it
a try.. :)
The GCC beagle tshell ROM already boots fine, both Linux and Windows
builds, but I will merge your latest default tip back to the GCC_SURGE
branch and see how that goes.
DO you think it's OK to merge GCC_SURGE to default? I've also merged the
two other branches I was using. This might help / easy moving the repo /
sources to some other location (i.e. in case only sources were moved to the
new repository in some extreme case) - and also to move some 'work' back to
default.
I'd love to do that consolidation. It would put us in a strong position
for moving to GCC as the official compiler.
However, before doing that I would like to see that we can build and boot
a beagle tshell rom from the GCC_SURGE branches of beagleboard and
kernelhwsrv with *RVCT4* and PDK 3.0.4 binaries (i.e. the GCC_SURGE branches
are compatible with the status quo). I have tried that. The rom build works,
OMAP3 beagleboard.org # go 0x81000000
## Starting application at 0x81000000 ...
R0=c80c0000 R1=dededec6 R2=1c1c1c1c R3=1c1c1c1c
R4=1c1c1c1c R5=1c1c1c1c R6=1c1c1c1c R7=1c1c1c1c
R8=1c1c1c1c R9=1c1c1c1c R10=c808fc80 R11=c808fc60
R12=00dedbdb R13=00000000 R14=00000000 R15=8000b12c
CPSR=20000113
R8=c80834e4 R9=ffffffff R10=00000004 R11=00000002
R12=81001bcc R13=c003c000 R14=81000960 SPSR=00000000
R13=c003a000 R14=00000000 SPSR=00000000
R13=c808eb80 R14=8007b1c8 SPSR=00000000
R13=c003fc00 R14=8000b12c SPSR=20000113
R13=c003e000 R14=4020ffcc SPSR=00000000
TEEHBR=00000000 CPACR=00f00000
SCTLR=30c5387f ACTLR=00000072 PRRR=000a00a4 NMRR=00400040
DACR=00000001 TTBR0=80000018 TTBR1=80000018 TTBCR=00000001
VBAR=00014000 FCSEID=00000000 CTXIDR=00000000
Thread ID RWRW=00000000 RWRO=00000000 RWNO=00000000
DFSR=00000807 DFAR=c80c0000 IFSR=00000000 IFAR=00000000
ADFSR=00000000 AIFSR=00000000
FPEXC 0000000a
ExcCode 00000001
FAULT: Exception 0x10000000 (268435456)
This is a data abort at DFAR=c80c0000. That's as far as I've got. I'll do
a catchup and see if its still there before anything else.
I recall that the RVCT build emitted numerous warnings like "target of
branch is a data address". Might be relevant.
Also, an important difference between the GCC rom and the RVCT rom is that
the GCC build excludes hardware vfp math support and the RVCT build includes
it.
Thanks
Lukasz.
Send Wild-ducks mailing list submissions to
To subscribe or unsubscribe via the World Wide Web, visit
http://developer.symbian.org/mailman/listinfo/wild-ducks
or, via email, send a message with subject or body 'help' to
You can reach the person managing the list at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Wild-ducks digest..."
1. GCC_SURGE catchup (Mike Kinghan)
---------- Wiadomo¶æ przekazana dalej ----------
Date: Wed, 17 Nov 2010 11:15:51 +0000
Subject: [Wild-ducks] GCC_SURGE catchup
The GCC_SURGE branch of beagleboard was 3.5 months stale. I have merged
it up to the default tip, with necessary fixes for Linux portability and for
GCCE's lack of vfp math support. The ROM builds but I haven't tried to boot
it yet - next.
--
Mike Kinghan,
Test Lead, Symbian
+44(0)776 5222 793
Symbian Foundation Limited is a Company Limited by Guarantee and not having Share Capital
We're registered in England and Wales - Companies House knows us by the number 6683783
Our address is 1 Boundary Row, Southwark, London SE1 8HP.
_______________________________________________
Wild-ducks mailing list
http://developer.symbian.org/mailman/listinfo/wild-ducks
--
Mike Kinghan,
Test Lead, Symbian
+44(0)776 5222 793
Symbian Foundation Limited is a Company Limited by Guarantee and not having Share Capital
We're registered in England and Wales - Companies House knows us by the number 6683783
Our address is 1 Boundary Row, Southwark, London SE1 8HP.
--
Mike Kinghan,
Test Lead, Symbian
+44(0)776 5222 793


Some facts about Symbian that we are legally obliged to tell you:
Symbian Foundation Limited is a Company Limited by Guarantee and not having Share Capital
We're registered in England and Wales - Companies House knows us by the number 6683783
Our address is 1 Boundary Row, Southwark, London SE1 8HP.
Loading...