Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: switching ppc to GCC 4.8



matthew green wrote:

> actually, my pegasos has had a GCC 4.8 userland for about a year,
> but only ever had one kernel that booted (i suspect somethings
> are just aligned right), until recently i had been GCC 4.5 kernels
> only.

I made tests with gcc 4.8, 12 months ago, and a macppc kernel crashed very
early on a PowerBook5,6 after printing the memory regions.

This is much better now. A 7.99.2 kernel and userland, compiled with gcc 4.8
works fine.


>> Did you compare the ATF output of a system compiled with 4.5 with 4.8?
>> That seems the easiest way to me for verifying 4.8 is ok.
>
> i didn't compare them recently, but last time i did, the userland
> was identical output with a GCC 4.5 kernels.

Unfortunately I have a serious problem with atf on the above mentioned
PowerBook. Not a single test works:

---8<---
powerbook# pwd
/usr/tests
powerbook# atf-run | atf-report
Tests root: /usr/tests
bin/cat/t_cat (1/602): 2 test cases
    align: [0.104806s] Passed.
    nonexistent: atf-report: ERROR: 34: Unexpected token `<<EOF>>'; expected
end of test
atf-report: case or test case's stdout/stderr line
[1]   Segmentation fault (core dumped) atf-run |
      Done(1)                 atf-report
---8<---

atf-run crashed in __tls_get_addr():
---8<---
(gdb) bt
#0  0xfdfed644 in __tls_get_addr () from /usr/libexec/ld.elf_so
#1  0xfdf2fe14 in __cxa_get_globals () from /usr/lib/libstdc++.so.7
#2  0xfdf2e4b4 in __cxa_throw () from /usr/lib/libstdc++.so.7
#3  0x01823cb0 in ?? ()
#4  0x01823f38 in tools::fs::exists(tools::fs::path const&) ()
#5  0x01806cdc in atf_run::run_test_program(tools::fs::path const&,
tools::test_program::atf_tps_writer&, std::map<std::string, std::string,
std::less<std::string>, std::allocator<std::pair<std::string const,
std::string> > > const&) ()
#6  0x01808abc in atf_run::run_test(tools::fs::path const&,
tools::test_program::atf_tps_writer&, std::map<std::string, std::string,
std::less<std::string>, std::allocator<std::pair<std::string const,
std::string> > > const&) ()
#7  0x01808ce0 in atf_run::run_test_directory(tools::fs::path const&,
tools::test_program::atf_tps_writer&) ()
#8  0x01808b08 in atf_run::run_test(tools::fs::path const&,
tools::test_program::atf_tps_writer&, std::map<std::string, std::string,
std::less<std::string>, std::allocator<std::pair<std::string const,
std::string> > > const&) ()
#9  0x01808ce0 in atf_run::run_test_directory(tools::fs::path const&,
tools::test_program::atf_tps_writer&) ()
#10 0x01808b08 in atf_run::run_test(tools::fs::path const&,
tools::test_program::atf_tps_writer&, std::map<std::string, std::string,
std::less<std::string>, std::allocator<std::pair<std::string const,
std::string> > > const&) ()
#11 0x018284d0 in atf_run::main() ()
#12 0x0181d028 in tools::application::app::run(int, char* const*) ()
#13 0x01828184 in main ()
(gdb) disassemble __tls_get_addr 
Dump of assembler code for function __tls_get_addr:
   0xfdd03fa8 <+0>:     stwu    r1,-32(r1)
   0xfdd03fac <+4>:     mflr    r0
   0xfdd03fb0 <+8>:     bcl     20,4*cr7+so,0xfdd03fb4 <__tls_get_addr+12>
   0xfdd03fb4 <+12>:    stw     r30,24(r1)
   0xfdd03fb8 <+16>:    mflr    r30
   0xfdd03fbc <+20>:    stw     r0,36(r1)
   0xfdd03fc0 <+24>:    addis   r30,r30,18
   0xfdd03fc4 <+28>:    addi    r30,r30,10840
   0xfdd03fc8 <+32>:    bl      0xfddab910
<00008000.got2.plt_pic32.abort+320>
End of assembler dump.
---8<---

Although I'm not sure why...

---8<---
(gdb) info reg
r0             0xfdf2e4b4       4260553908
r1             0xffffd190       4294955408
[...]
r30            0xfdfdbe20       4261264928
r31            0xfdb14150       4256252240
pc             0xfdfed644       0xfdfed644 <__tls_get_addr+16>
msr            <unavailable>
cr             0x24000082       603979906
lr             0xfdf2fe14       0xfdf2fe14 <__cxa_get_globals+60>
---8<---

-- 
Frank Wille



Home | Main Index | Thread Index | Old Index