|
|
Up |
|
|
  |
Author: Brian L. StuartBrian L. Stuart Date: May 13, 2008 13:46
What compiler has been successfully used to build
p9p on Solaris? I've got a Solaris 9 install and
have tried the gcc 2.95 from the extras cd and Sun
Studio 11 and both have heartburn on the anonymous
unions and structs used in hfs.h in libdiskfs.
Thanks,
BLS
|
| |
|
| | 6 Comments |
|
  |
Author: Russ CoxRuss Cox Date: May 13, 2008 17:19
> What compiler has been successfully used to build
> p9p on Solaris? I've got a Solaris 9 install and
> have tried the gcc 2.95 from the extras cd and Sun
> Studio 11 and both have heartburn on the anonymous
> unions and structs used in hfs.h in libdiskfs.
I'm sorry about that. There aren't supposed to be
anonymous unions and structs in the source code,
but they creep in. I've removed them from hfs.h.
I gave up long ago on keeping Solaris builds working
myself. Logging into a Solaris machine is like going
back in time. I'm happy to accept patches though.
Russ
|
| |
|
| | 5 Comments |
|
  |
Author: Brian L. StuartBrian L. Stuart Date: May 15, 2008 14:08
> I'm sorry about that. There aren't supposed to be
> anonymous unions and structs in the source code,
> but they creep in. I've removed them from hfs.h.
Thanks, that got me farther. I was able to coerce it
to build the libraries and some applications. But,
surprise surprise, the threading isn't working. In
playing the the tprimes thread test program, I've found
that it's aborting in needstack(). The first time
it gets called, t->stk==f3333334, t->id==4280014785
and t->stksize==10. The next time it gets called
(using the same _Thread structure instance), t->stk==0,
t->id==0, and t->stksize==213456. So it looks like
something is scribbling on that structure.
That's as far as I've gotten today. I'm trying to
get vbackup running on Solaris. It's not critical,
but it'd be nice.
> I gave up long ago on keeping Solaris builds working
> myself. Logging into a Solaris machine is like going
> back in time. I'm happy to accept patches though.
|
| Show full article (1.07Kb) |
| 4 Comments |
|
  |
Author: Russ CoxRuss Cox Date: May 15, 2008 15:33
> Thanks, that got me farther. I was able to coerce it
> to build the libraries and some applications. But,
> surprise surprise, the threading isn't working. In
> playing the the tprimes thread test program, I've found
> that it's aborting in needstack(). The first time
> it gets called, t->stk==f3333334, t->id==4280014785
> and t->stksize==10. The next time it gets called
> (using the same _Thread structure instance), t->stk==0,
> t->id==0, and t->stksize==213456. So it looks like
> something is scribbling on that structure.
|
| Show full article (1.54Kb) |
| 3 Comments |
|
  |
Author: Brian L. StuartBrian L. Stuart Date: May 28, 2008 12:37
> That's probably because the stack pointer points at
> the wrong end of the stack. There are some magic
> #defines you can put in that change the meaning of
> ...
> Once you get the thread library working,
> you will probably have to add support for
> the Solaris FS to libdiskfs, unless it is the
> same FFS that BSD uses.
I know it's been a while, but that got me farther. The
odd thing is that I had already played with the magic
define, but it seems that __sun__ wasn't getting set.
I'll take a look at that before I send any patches.
It turns out that Solaris does use the FFS, but it
uses version 1. So I did some work on V1 to get it
working. I'm hoping that all the other instances of
FFS are V2 so that we don't have to figure out some
way to handle both.
Anyway, the main changes:
- It would appear that FFS V2 specifies most things
in terms of blocks, but V1 in terms of fragments.
I think the changes I made to handle V1 will still
work with V2, but I don't...
|
| Show full article (2.06Kb) |
| 2 Comments |
|
  |
Author: Russ CoxRuss Cox Date: May 28, 2008 13:03
> I know it's been a while, but that got me farther. The
> odd thing is that I had already played with the magic
> define, but it seems that __sun__ wasn't getting set.
Bug in 9c. Fixed and pushed.
> - There's also a discrepancy between the V1 inode
> defined in ffs.h and the one defined in the Solaris
> header files. It ends up messing up the UID and
> GID fields.
Please compare against the BSD sources if you get
a chance -- I hope I just misread the data structure.
> the inodes and the directory entries. It basically
> looks at the magic number and if it would be correct
> swapped, we take that as good enough and set a flag
> to swap everything.
Great, thanks.
|
| Show full article (1.15Kb) |
| 1 Comment |
|
  |
|
|
  |
Author: Brian L. StuartBrian L. Stuart Date: May 28, 2008 13:29
>> I know it's been a while, but that got me farther. The
>> odd thing is that I had already played with the magic
>> define, but it seems that __sun__ wasn't getting set.
>
> Bug in 9c. Fixed and pushed.
Cool.
> Please compare against the BSD sources if you get
> a chance -- I hope I just misread the data structure.
I will. I've got a couple NetBSD machines at home I can
check, but I'd bet they're V2, and the bug was only in
the V1 inode structure. I might play archaeologist
and see what BSD4.3 or 4.4 have.
|
| Show full article (1.53Kb) |
| no comments |
|
|