[osiris-devel] Osiris 2.4.4-stable released
Alexei Roudnev
Alexei_Roudnev at exigengroup.com
Thu Jan 29 14:43:47 EST 2004
Yes, but adjustmenmt depends of the memory model, so it shoul not be used
in protocol, when possible.
I agree (may be) that it is reasonable to keep **64 adjustments instead of
**32 ones. Anyway, 2.4.4 works on all Solaris systems without any problems;
I believe, that failure was caused by using /64 bit mode instead of /32 bit
mode (no any good reason to use 64 bits in Osiris).
Sparc GCC:
-m32
-m64
Generate code for a 32-bit or 64-bit environment. The 32-bit environment
sets int, long and pointer to 32 bits. The 64-bit environment sets int to 32
bits and long and pointer to 64 bits.
Of course, it may be too late change osiris-3 back.
PS, Strange example - it is 100% machine dependent... This program violate
all possible rules.Additionally, internal data structures should not be used
in network without packing/unpacking or binary<->text conversion. Windows
have pragma to control data adjustment; moreover, it is critical to
translate SSL in the same mode, as your program (we had some fun with this
problem 1 year ago).
----- Original Message -----
From: "Brian Wotring" <brian at shmoo.com>
To: "Osiris Developers" <osiris-devel at lists.shmoo.com>
Sent: Thursday, January 29, 2004 7:37 AM
Subject: Re: [osiris-devel] Osiris 2.4.4-stable released
>
> Here is an example of code that will seg, it demonstrates the problem,
> exactly. Correctly define the foo structure with an additional short,
> and everything is happy.
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
>
> struct foo
> {
> short x;
> short y;
> short z;
> };
>
> struct bar
> {
> long long gold;
> char buf[1024];
> };
>
> int main()
> {
> struct foo myfoo;
> struct bar mybar;
>
> struct bar * realbar;
>
> char *buf = (char *)malloc( sizeof( myfoo ) + sizeof( mybar ) );
> mybar.gold = 4;
>
> memcpy( buf, &myfoo, sizeof( myfoo ) );
> memcpy( (buf+sizeof(myfoo)), &mybar, sizeof( mybar ) );
>
> realbar = (struct bar *)( buf + sizeof( myfoo ) );
> fprintf( stderr, "gold is: %llu\n", realbar->gold );
>
> return 0;
> }
>
>
> On Jan 28, 2004, at 11:42 AM, Alexei_Roudnev wrote:
>
> > It is not hardware issue; it is (more likely) compilation mode issue.
> > For
> > Solaris, I strongly recommend to have binary version, built on Solaris
> > 2.7 /
> > Ultra Sparc / 32 bits, which can work on ANY hardware and ANY software
> > (Solaris 2./7 - 2.9), and forget about this problem. You can not align
> > network data structure to theparticular hardware (what if next Sun
> > will have
> > 126bit mode - change structures again?).
> >
> > Moreover, I am 100% sure that C compiler allows to use un-aligned
> > structures
> > in 64 bit mode, just look for the compiler options.
> >
> > ----- Original Message -----
> > From: "Brian Wotring" <brian at shmoo.com>
> > To: "Osiris Developers" <osiris-devel at lists.shmoo.com>
> > Sent: Wednesday, January 28, 2004 5:07 AM
> > Subject: Re: [osiris-devel] Osiris 2.4.4-stable released
> >
> >
> >>
> >> You are correct, it would effect OpenBSD running on this hardware.
> >>
> >> On Jan 27, 2004, at 6:02 PM, Richard Johnson wrote:
> >>
> >>> At 06:23 -0700 on 2004-01-26, Brian Wotring wrote:
> >>>> - - this release changes the message header structure used
> >>>> throughout the components of the Osiris sytem. Thus,
> >>>> this release is not compatible with previous releases.
> >>>> The changes was necessary in order to fix an alignment
> >>>> problem on Solaris.
> >>>
> >>>
> >>> While I understand this fix isn't actually in until the rel_3_dev
> >>> branch,
> >>> the alignment problem doesn't seem to affect just Solaris:
> >>>
> >>> | $ uname -mpsv
> >>> | OpenBSD GENERIC#4 sparc64 SUNW,UltraSPARC-IIi @ 333 MHz, version 0
> >>> FPU
> >>> | $ dmesg | grep '3.4-current'
> >>> | OpenBSD 3.4-current (GENERIC) #4: Fri Jan 23 17:29:32 MST 2004
> >>> | $ osiris
> >>> | Osiris command line management utility - version 2.4.4-stable
> >>> | authenticating to (localhost)
> >>> |
> >>> | User: admin
> >>> | Password:
> >>> |
> >>> | [frozen here]
> >>>
> >>> The freeze noted in 2.4.4 does not occur in 3.0.1-current, so I
> >>> suspect the
> >>> alignment fix was the key for OpenBSD sparc64 support as well.
> >>>
> >>>
> >>> Richard
> >>> _______________________________________________
> >>> osiris-devel mailing list
> >>> osiris-devel at lists.shmoo.com
> >>> https://lists.shmoo.com/mailman/listinfo/osiris-devel
> >>>
> >>>
> >> --
> >> Brian Wotring ( brian at shmoo.com )
> >> PGP KeyID: 0x9674763D
> >>
> >> _______________________________________________
> >> osiris-devel mailing list
> >> osiris-devel at lists.shmoo.com
> >> https://lists.shmoo.com/mailman/listinfo/osiris-devel
> >>
> >
> > _______________________________________________
> > osiris-devel mailing list
> > osiris-devel at lists.shmoo.com
> > https://lists.shmoo.com/mailman/listinfo/osiris-devel
> >
> >
> --
> Brian Wotring ( brian at shmoo.com )
> PGP KeyID: 0x9674763D
>
> _______________________________________________
> osiris-devel mailing list
> osiris-devel at lists.shmoo.com
> https://lists.shmoo.com/mailman/listinfo/osiris-devel
>
More information about the osiris-devel
mailing list