xcdroast-0.95a-axp-Patch

Zarmfab Software Development (fabsoft@fabsoft2.zarm.uni-bremen.de)
Fri, 15 Nov 1996 12:11:20 +0100

This is my patch to make the really nice designed xcdroast compile against a
redhat 4.0 axp distribution ( and the 2.0.25 Kernel source ).

NOTE:

If you have applied the axp-diffs to your Kernel Source tree (what is very likely),
you will not be able to #include sys/resource.h without getting errors, because
some symbols are not defined. My way around this is the file fixup_res.h,
which must be included before sys/resource.h, if __alpha is defined.
Very ugly and dirty, but it works for me with the patched as well as the original Kernel-tree.

The patch includes a patch to fdisk-3.04 ( llseek is not needed nor present at the
alpha, we're 64 ), but there are some 'misaligned traps', when fdisk is run.
I was too lazy to fix this. ;-(

WARNING:

cdwrite-2.0 seems to lockup my scsi driver ( ncr53c8xx-1.14c ) in the fixating stage, but imho
that's not a problem of xcdroast or cdwrite. I'll try to investigate this and ask the author of
the driver for help.

------- snip snip --------

diff -u -r -P xcdroast-0.95a/src/fdisk3.04.c xcdroast-0.95a-axp/src/fdisk3.04.c
--- xcdroast-0.95a/src/fdisk3.04.c Sun May 5 20:13:24 1996
+++ xcdroast-0.95a-axp/src/fdisk3.04.c Thu Nov 14 14:05:25 1996
@@ -46,6 +46,7 @@
#include <linux/unistd.h> /* _syscall */
#include <linux/hdreg.h> /* HDIO_GETGEO */
#include <linux/fs.h> /* BLKGETSIZE */
+#include <unistd.h> /* lseek */

#define SIZE(a) (sizeof(a)/sizeof(a[0]))

@@ -123,6 +124,7 @@
* know about the loff_t type.
*/

+#ifndef __alpha
static
_syscall5(int, _llseek, uint, fd, ulong, hi, ulong, lo,
loff_t *, res, uint, wh);
@@ -147,6 +149,28 @@
}
return 1;
}
+#else
+int
+sseek(char *dev, unsigned int fd, unsigned long s) {
+ __off_t in, out;
+ in = ((__off_t) s << 9);
+
+ if ((out=lseek (fd, in, SEEK_SET)) < 0) {
+ perror("lseek");
+ error("seek error on %s - cannot seek to sector %lu\n", dev, s);
+ return 0;
+ }
+
+ if (in != out) {
+ error("seek error: wanted 0x%016lx, got 0x%016lx\n",
+ (unsigned long)in,
+ (unsigned long)out);
+ return 0;
+ }
+ return 1;
+}
+#endif
+

/*
* B. About sectors
diff -u -r -P xcdroast-0.95a/src/fixup_res.h xcdroast-0.95a-axp/src/fixup_res.h
--- xcdroast-0.95a/src/fixup_res.h Thu Jan 1 01:00:00 1970
+++ xcdroast-0.95a-axp/src/fixup_res.h Fri Nov 15 11:29:51 1996
@@ -0,0 +1,35 @@
+#include <asm/resource.h>
+
+#ifndef RLIMIT_CPU
+#define RLIMIT_CPU __KERNEL_RLIMIT_CPU
+#endif
+#ifndef RLIMIT_FSIZE
+#define RLIMIT_FSIZE __KERNEL_RLIMIT_FSIZE
+#endif
+#ifndef RLIMIT_DATA
+#define RLIMIT_DATA __KERNEL_RLIMIT_DATA
+#endif
+#ifndef RLIMIT_STACK
+#define RLIMIT_STACK __KERNEL_RLIMIT_STACK
+#endif
+#ifndef RLIMIT_CORE
+#define RLIMIT_CORE __KERNEL_RLIMIT_CORE
+#endif
+#ifndef RLIMIT_RSS
+#define RLIMIT_RSS __KERNEL_RLIMIT_RSS
+#endif
+#ifndef RLIMIT_NOFILE
+#define RLIMIT_NOFILE __KERNEL_RLIMIT_NOFILE
+#endif
+#ifndef RLIMIT_AS
+#define RLIMIT_AS __KERNEL_RLIMIT_AS
+#endif
+#ifndef RLIMIT_NPROC
+#define RLIMIT_NPROC __KERNEL_RLIMIT_NPROC
+#endif
+#ifndef RLIMIT_MEMLOCK
+#define RLIMIT_MEMLOCK __KERNEL_RLIMIT_MEMLOCK
+#endif
+#ifndef RLIM_NLIMITS
+#define RLIM_NLIMITS __KERNEL_RLIM_NLIMITS
+#endif
diff -u -r -P xcdroast-0.95a/src/getpartsize.c xcdroast-0.95a-axp/src/getpartsize.c
--- xcdroast-0.95a/src/getpartsize.c Fri Nov 1 12:47:41 1996
+++ xcdroast-0.95a-axp/src/getpartsize.c Thu Nov 14 14:20:00 1996
@@ -6,6 +6,7 @@
#include <stdio.h>
#include <fcntl.h>
#include <linux/fs.h>
+#include <string.h>

int getsize(char *dev) {
int fd,size;
diff -u -r -P xcdroast-0.95a/src/isiso.c xcdroast-0.95a-axp/src/isiso.c
--- xcdroast-0.95a/src/isiso.c Thu Mar 14 14:20:13 1996
+++ xcdroast-0.95a-axp/src/isiso.c Thu Nov 14 11:55:27 1996
@@ -12,6 +12,7 @@
#include <ctype.h>
#include <unistd.h>
#include <fcntl.h>
+#include <string.h>

char buf[1024];
char devname[80];
diff -u -r -P xcdroast-0.95a/src/isodetect.c xcdroast-0.95a-axp/src/isodetect.c
--- xcdroast-0.95a/src/isodetect.c Thu Apr 18 23:59:05 1996
+++ xcdroast-0.95a-axp/src/isodetect.c Thu Nov 14 11:55:46 1996
@@ -14,6 +14,7 @@
#include <unistd.h>
#include <fcntl.h>
#include <termio.h>
+#include <string.h>

char buf[1024];
char devname[80];
diff -u -r -P xcdroast-0.95a/src/isoinfo.c xcdroast-0.95a-axp/src/isoinfo.c
--- xcdroast-0.95a/src/isoinfo.c Sun May 5 13:51:52 1996
+++ xcdroast-0.95a-axp/src/isoinfo.c Thu Nov 14 12:07:12 1996
@@ -36,6 +36,7 @@
#include <stdio.h>
#include <signal.h>
#include <sys/stat.h>
+#include <string.h>

#ifdef __svr4__
#include <stdlib.h>
@@ -45,6 +46,11 @@
/* extern int getopt (int __argc, char **__argv, char *__optstring); */
#endif

+#ifdef linux
+#include <stdlib.h>
+#include <unistd.h>
+#endif
+
FILE * infile;
int use_rock = 0;
int do_listing = 0;
@@ -406,7 +412,7 @@
if( td != NULL )
{
while(td->next != NULL) td = td->next;
- td->next = (struct todo *) malloc(sizeof(*td));
+ td->next = malloc(sizeof(*td));
td = td->next;
}
else
diff -u -r -P xcdroast-0.95a/src/mkisofs-1.05/mkisofs.c xcdroast-0.95a-axp/src/mkisofs-1.05/mkisofs.c
--- xcdroast-0.95a/src/mkisofs-1.05/mkisofs.c Tue May 14 21:42:29 1996
+++ xcdroast-0.95a-axp/src/mkisofs-1.05/mkisofs.c Thu Nov 14 14:24:49 1996
@@ -544,7 +544,7 @@
int FDECL2(main, int, argc, char **, argv){
char * outfile;
struct directory_entry de;
- unsigned int mem_start;
+ unsigned long mem_start;
struct stat statbuf;
char * scan_tree;
int c;
@@ -656,7 +656,7 @@
}
}
#endif
- mem_start = (unsigned int) sbrk(0);
+ mem_start = (unsigned long) sbrk(0);

if(verbose) fprintf(stderr,"%s\n", version_string);
/* Now find the timezone offset */
@@ -761,8 +761,8 @@

iso_write(discimage);

- fprintf(stderr,"Max brk space used %x\n",
- ((unsigned int)sbrk(0)) - mem_start);
+ fprintf(stderr,"Max brk space used %lx\n",
+ ((unsigned long)sbrk(0)) - mem_start);
fprintf(stderr,"%d extents written (%d Mb)\n", last_extent, last_extent >> 9);
#ifdef VMS
return 1;
diff -u -r -P xcdroast-0.95a/src/mkisofs-1.05/write.c xcdroast-0.95a-axp/src/mkisofs-1.05/write.c
--- xcdroast-0.95a/src/mkisofs-1.05/write.c Tue May 14 21:42:29 1996
+++ xcdroast-0.95a-axp/src/mkisofs-1.05/write.c Thu Nov 14 14:30:27 1996
@@ -600,7 +600,7 @@

do{
fix = 0;
- qsort(&pathlist[1], next_path_index-1, sizeof(struct directory *), compare_paths);
+ qsort(&pathlist[1], next_path_index-1, sizeof(struct directory *), (__compar_fn_t)compare_paths);

for(j=1; j<next_path_index; j++)
if(pathlist[j]->path_index != j){
diff -u -r -P xcdroast-0.95a/src/mycdwrite.c xcdroast-0.95a-axp/src/mycdwrite.c
--- xcdroast-0.95a/src/mycdwrite.c Mon Jul 8 19:50:59 1996
+++ xcdroast-0.95a-axp/src/mycdwrite.c Fri Nov 15 11:28:19 1996
@@ -38,6 +38,9 @@
#include <sys/file.h>
#include <sys/errno.h>
#include <sys/time.h>
+#ifdef __alpha
+#include "fixup_res.h"
+#endif
#include <sys/resource.h>
#include <sys/stat.h>
#include <sys/time.h>
diff -u -r -P xcdroast-0.95a/src/playcdda.c xcdroast-0.95a-axp/src/playcdda.c
--- xcdroast-0.95a/src/playcdda.c Thu May 9 19:08:17 1996
+++ xcdroast-0.95a-axp/src/playcdda.c Thu Nov 14 11:49:55 1996
@@ -17,6 +17,7 @@
#include <strings.h>
#include <linux/soundcard.h>
#include <sys/stat.h>
+#include <errno.h>

#define DEFAULT_DSP_SPEED 44100
#define FRAMESIZE 2352 /* Framesize in CDR-Format */
diff -u -r -P xcdroast-0.95a/src/readcdda.c xcdroast-0.95a-axp/src/readcdda.c
--- xcdroast-0.95a/src/readcdda.c Fri Nov 1 12:53:42 1996
+++ xcdroast-0.95a-axp/src/readcdda.c Thu Nov 14 11:49:03 1996
@@ -22,7 +22,8 @@
#include <scsi/sg.h>
#include <getopt.h>
#include <linux/soundcard.h>
-#include <linux/cdrom.h>
+#include <errno.h>
+#include <stdarg.h>

#define MAX_TRACKS 100 /* maximum of audio tracks */
#define MAX_TOC_LENGTH 0x322 /* max. length of a TOC */
@@ -108,11 +109,14 @@

/* report a fatal error, clean up and exit */

-void FatalError (char *szMessage, ...)
+void FatalError (char *format, ...)
{
- vprintf (szMessage, (char *)(&szMessage + 1));
- CloseAll();
- exit(1);
+ va_list ap;
+ va_start(ap,format);
+ vprintf (format,ap);
+ va_end(ap);
+ CloseAll();
+ exit(1);
}

------- snip snip --------

-- 
Martin Cornelius, ZARMFAB software development, University of Bremen
phone: 49-421-218-4807    FAX: 49-421-218-3889
email: fabsoft@zarm.uni-bremen.de
paper-mail: Hochschulring / Am Fallturm, 28359 BREMEN, Germany

--
To unsubscribe: send e-mail to axp-list-request@redhat.com with
'unsubscribe' as the subject.  Do not send it to axp-list@redhat.com



Feedback | Store | News | Support | Product Errata | About Us | Linux Info | Search | JumpWords
No Frames | Show Frames

Copyright © 1995-1997 Red Hat Software. Legal notices