The problem we had was that print hadn't even worked yet, and as we
figured, due to data/text shenanigans.
A print("hello"); would fail, but a `static char asdf[] = "asdf";
print(asdf);` would work. (notation might be wrong here, sorry, I'm not
that into C...)Ron, how would that panic become visible? If the test fails, I would need to be able to see its result. On Fri, May 30, 2025 at 6:54 AM Charles Forsyth <[email protected]> wrote: > copy attached > uncluttered by extensions > apparently ken thompson did the C version for unix (i just added the > types), > which makes it an appropriate test for a new compiler and then kernel port. > > > On Thu, 29 May 2025 at 22:35, Charles Forsyth <[email protected]> > wrote: > >> that reminds me that the first kernel-level program i ran on new ports >> was wump (hunt the wumpus), >> partly to debug similar effects, but also because it's fun if not just >> silly >> >> On Thu, 29 May 2025 at 22:05, Ron Minnich <[email protected]> wrote: >> >>> Daniel and Shawn made good progress on the risc-v port, and their >>> experience reminded me of a standard test I used to use while doing >>> ports. >>> >>> long story short, for blue gene and other ports (early amd64) we added >>> this test in main >>> >>> ulong x = 0x12345678; >>> >>> main() >>> { >>> if (x != 0x12345678) panic("unaligned data"): >>> >>> ... >>> >>> how can this test fail? x is in the data segment, but the immediate in >>> the test is in the text segment. This test is a quick and easy way to >>> check if your data segment is correctly loaded in memory. >>> >>> In some ports, the data is aligned by code in l.s that moves it. >>> >>> There are some really nasty, confusing errors that will arise in a >>> seemingly working kernel if data is not aligned. >>> >>> I always add this test when I'm doing a port. It catches a problem >>> that is otherwise very confusing, and presents as strings not set up >>> right, variables wrong, etc. >> *9fans <https://9fans.topicbox.com/latest>* / 9fans / see discussions > <https://9fans.topicbox.com/groups/9fans> + participants > <https://9fans.topicbox.com/groups/9fans/members> + delivery options > <https://9fans.topicbox.com/groups/9fans/subscription> Permalink > <https://9fans.topicbox.com/groups/9fans/T2fa5d9bbce09411d-M20971a617edcf1e37d4cf92f> > ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T2fa5d9bbce09411d-Mbd72925db2b27557a145f3ec Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
