Re: Build problems under Solaris 2.6

Michael Polo (mikep@Polo.NET)
Fri, 29 May 1998 12:39:30 -0700

Looks like there's (still) a bug with the solaris printf
that coredumps. Dave (dave@rudedog.org) seems to have a
fix for it that wasn't as complicated as my workaround
in the past (great!)

I got it to work with the sun C compiler, but still have
to remember to use gnu make to build the project.

Is there a guru out there who can figure a way to
rewrite this makefile rule:

> libsane-%.la: %.lo %-s.lo $(EXTRA) $(LIBOBJS)
> @$(LIBTOOL) $(MLINK) $(CC) -export-dynamic -o $@ $(LDFLAGS) $^ \
> -rpath $(libsanedir) -version-info $(V_MAJOR):$(V_MINOR):0

so that Sun's make doesn't compain with:

> make: Fatal error in reader: Makefile, line 69: More than one % pattern on right hand side
> Current working directory /export/home/build/sane-0.73/backend

If we get that, then sane might work out-of-the-box on solaris,
which would rock!

Thanks,
Mike

Here are the fixes to get things to compile with the sun C compiler:

--- backend/epson.c.ORIG Sat May 9 12:53:44 1998
+++ backend/epson.c Fri May 29 07:32:11 1998
@@ -557,7 +557,7 @@
u_char status;
u_short count;

- u_char buf[0];
+ u_char buf[1];

}
EpsonHdrRec, *EpsonHdr;
@@ -571,7 +571,7 @@
u_char type;
u_char level;

- u_char buf[0];
+ u_char buf[1];

}
EpsonIdentRec, *EpsonIdent;
--- backend/microtek2.c.ORIG Mon May 11 21:54:17 1998
+++ backend/microtek2.c Fri May 29 07:42:04 1998
@@ -2826,9 +2826,9 @@
lines_to_deliver = MIN(srcframes[color_seq2] + prehold[color_seq2],
dest_fit_lines); /* lines_to_deliver maybe zero */

- DBG(30, "proc_sgreg_data: fitlines=%d, to_deliver=%d bpp=%d bpf=%d
- srcframes0=%d, srcframes1=%d, srcframes2=%d
- prehold0=%d, prehold1=%d, prehold2=%d\n", dest_fit_lines,
+ DBG(30, "proc_sgreg_data: fitlines=%d, to_deliver=%d bpp=%d bpf=%d "
+ "srcframes0=%d, srcframes1=%d, srcframes2=%d "
+ "prehold0=%d, prehold1=%d, prehold2=%d\n", dest_fit_lines,
lines_to_deliver, bpp, bpf, srcframes[0], srcframes[1],
srcframes[2], prehold[0], prehold[1], prehold[2]);

@@ -2954,8 +2954,8 @@
}
break;
default:
- DBG(1, "proc_segreg_data: unknown color indicator (3)
- 0x%02x\n", *from);
+ DBG(1, "proc_segreg_data: unknown color indicator (3) "
+ "0x%02x\n", *from);
break;
}
from += bpf;
@@ -3274,7 +3274,8 @@
static SANE_Status
scsi_set_window(Microtek2_Scanner *ms, SANE_Int n) { /* n windows, not yet */
/* implemented */
- u_int8_t setwindow[SW_CMD_L + SW_HEADER_L + n * SW_BODY_L];
+/* u_int8_t setwindow[SW_CMD_L + SW_HEADER_L + n * SW_BODY_L];*/
+ u_int8_t *setwindow = alloca(sizeof(u_int8_t) * (SW_CMD_L + SW_HEADER_L + n * SW_BODY_L));
SANE_Int status;


--- sanei/sanei_scsi.c.ORIG Fri May 15 01:10:29 1998
+++ sanei/sanei_scsi.c Fri May 29 07:17:51 1998
@@ -2072,10 +2072,10 @@
#endif /* WE_HAVE_ASYNC_SCSI */

#ifndef WE_HAVE_FIND_DEVICES
-
void
-sanei_scsi_find_devices (const char *findvendor, const char *findmodel,
- int findbus, int findchannel, int findid, int findlun,
+sanei_scsi_find_devices (const char *vendor, const char *model,
+ const char *type,
+ int bus, int channel, int id, int lun,
SANE_Status (*attach) (const char *dev))
{
DBG (1, "sanei_scsi_find_devices: not implemented for this platform\n");

--
Source code, list archive, and docs: http://www.mostang.com/sane/
To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com