I've made this change. I don't see any easy way to fix it in portable way, and more importantly I don't have any way to test it. I'll be glad to take patches if someone wants to supply them.
-- Peter Fales On Fri, Oct 11, 2002 at 06:50:14PM +0200, Petter Reinholdtsen wrote: > > I just discovered this code when trying to find out why the CVS > version of sane-backends fail to compile on HP/UX using the native > compiler. > > #ifdef __GNUC__ > #define UNUSEDARG __attribute__ ((unused)) > #define PACKED __attribute__ ((packed)) > #else > #define UNUSEDARG > /* You need to figure out a way to ensure that there are no holes > * in the following dir_buf structure - it has to match data read from > * the camera. gcc does this with __attribute__ ((packed)) > */ > #error > #endif > > First of all, '#error' need a parameter to be ANSI C. But the real > problem is that '__attribute__((packed))' only work on GCC. I suggest > that this backend only is compiled when using GCC. The real fix would > be to rewrite this to be portable code. I do not believe it is > possible to get packed structs any portable way. > > Here is a patch to fix the typo and use the available PACKED macro. > > Index: dc240.h > =================================================================== > RCS file: /cvsroot/external/sane/sane-backends/backend/dc240.h,v > retrieving revision 1.2 > diff -u -3 -p -u -w -r1.2 dc240.h > --- dc240.h 2002/09/22 13:49:47 1.2 > +++ dc240.h 1994/10/11 16:48:31 > @@ -212,14 +212,14 @@ struct cam_dirent > * in the following dir_buf structure - it has to match data read from > * the camera. gcc does this with __attribute__ ((packed)) > */ > -#error > +# error "Please port to this compiler." > #endif > > struct dir_buf > { > SANE_Byte entries_msb PACKED; > SANE_Byte entries_lsb PACKED; > - struct cam_dirent entry[1000] __attribute__ ((packed)); > + struct cam_dirent entry[1000] PACKED; > }; > > struct cam_dirlist > _______________________________________________ > Sane-devel mailing list > sane-de...@www.mostang.com > http://www.mostang.com/mailman/listinfo/sane-devel