Bug#438849: [patch] add support for GNU/kFreeBSD (fwd)

2007-11-17 Thread Darren Salt
I demand that Petr Salinger may or may not have written...

[snip]
 The implication is in the opposite way, i.e it could be possible
 to have in include/config.h:
 
 #if defined (__FreeBSD__)  !defined (__FreeBSD_kernel__)
 #define __FreeBSD_kernel__ __FreeBSD__
 #endif
 
 and the changes would be defined (__FreeBSD__) into
 defined (__FreeBSD_kernel__). The same relationship is also
 between __FreeBSD_version and __FreeBSD_kernel_version.

Discussion on IRC:

17:02:22 Flameeyes seems mostly fine to me, although i'd prefer the idea of
defining __FreeBSD_kernel__ if __FreeBSD__ is defined
17:06:21 _ds_ ... so should I push it (committed locally) or do we try to
get that change made...
17:06:49 Flameeyes _ds_, I'd say get it changed

BTW, try not to include generated files in the patch or to terminate every
line in it with CRLF... :-)

-- 
| Darren Salt| linux or ds at  | nr. Ashington, | Toon
| RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army
| + Use more efficient products. Use less.  BE MORE ENERGY EFFICIENT.

I can relate to that.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#438849: [patch] add support for GNU/kFreeBSD

2007-11-05 Thread Petr Salinger

Hello.

Please, could you apply attached patch to add support
also for GNU/kFreeBSD = FreeBSD based kernel + glibc based userland.

The patch mainly changes defined (__FreeBSD__) into 
defined (__FreeBSD__) || defined (__FreeBSD_kernel__)


It is not possible i.e. to have include/config.h cause __FreeBSD__ to
be defined if __FreeBSD_kernel__ is defined, because
macro __FreeBSD_kernel__ signals kernel is FreeBSD based,
but macro __FreeBSD__ signals both kernel and userspace is FreeBSD based.
This is also reason, why some defined (__FreeBSD__) are not changed.

The implication is in the opposite way, i.e it could be possible
to have in include/config.h:

#if defined (__FreeBSD__)  !defined (__FreeBSD_kernel__)
#define __FreeBSD_kernel__ __FreeBSD__
#endif

and the changes would be defined (__FreeBSD__) into
defined (__FreeBSD_kernel__). The same relationship is also
between __FreeBSD_version and __FreeBSD_kernel_version.

Petr

P.S.
Please CC: me on replies, I am not subscribed.only in patch2:
unchanged:
--- xine-lib-1.1.8.orig/src/video_out/libdha/ports.c
+++ xine-lib-1.1.8/src/video_out/libdha/ports.c
@@ -69,7 +69,7 @@
 /* OS depended stuff */
 #if defined (linux)
 #include sysdep/pci_linux.c
-#elif defined (__FreeBSD__)
+#elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
 #include sysdep/pci_freebsd.c
 #elif defined (__386BSD__)
 #include sysdep/pci_386bsd.c
only in patch2:
unchanged:
--- xine-lib-1.1.8.orig/src/input/input_cdda.c
+++ xine-lib-1.1.8/src/input/input_cdda.c
@@ -614,7 +614,7 @@
   return 0;
 }
 
-#elif defined(__FreeBSD__) || defined(__NetBSD__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || 
defined(__NetBSD__)
 
 #include sys/cdio.h
 
@@ -625,7 +625,7 @@
 static int read_cdrom_toc(int fd, cdrom_toc *toc) {
 
   struct ioc_toc_header tochdr;
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   struct ioc_read_toc_single_entry tocentry;
 #elif defined(__NetBSD__)
   struct ioc_read_toc_entry tocentry;
@@ -656,7 +656,7 @@
 
 memset(tocentry, 0, sizeof(tocentry));
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 tocentry.track = i;
 tocentry.address_format = CD_MSF_FORMAT;
 if (ioctl(fd, CDIOREADTOCENTRY, tocentry) == -1) {
@@ -675,7 +675,7 @@
 }
 #endif
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 toc-toc_entries[i-1].track_mode = (tocentry.entry.control  0x04) ? 1 : 0;
 toc-toc_entries[i-1].first_frame_minute = tocentry.entry.addr.msf.minute;
 toc-toc_entries[i-1].first_frame_second = tocentry.entry.addr.msf.second;
@@ -699,7 +699,7 @@
   /* fetch the leadout as well */
   memset(tocentry, 0, sizeof(tocentry));
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   tocentry.track = CD_LEADOUT_TRACK;
   tocentry.address_format = CD_MSF_FORMAT;
   if (ioctl(fd, CDIOREADTOCENTRY, tocentry) == -1) {
@@ -718,7 +718,7 @@
   }
 #endif
 
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
   toc-leadout_track.track_mode = (tocentry.entry.control  0x04) ? 1 : 0;
   toc-leadout_track.first_frame_minute = tocentry.entry.addr.msf.minute;
   toc-leadout_track.first_frame_second = tocentry.entry.addr.msf.second;
@@ -747,8 +747,8 @@
   int fd = this_gen-fd;
 
   while( num_frames ) {
-#if defined(__FreeBSD__)
-#if  __FreeBSD_version  501106
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#if (__FreeBSD_version  501106)  (__FreeBSD_kernel_version  501106)
 struct ioc_read_audio cdda;
 
 cdda.address_format = CD_MSF_FORMAT;
@@ -757,13 +757,10 @@
 cdda.address.msf.frame = frame % CD_FRAMES_PER_SECOND;
 cdda.nframes = 1;
 cdda.buffer = data;
-#endif
-
-#if  __FreeBSD_version = 501106
-if (pread(fd, data, CD_RAW_FRAME_SIZE, frame * CD_RAW_FRAME_SIZE) != 
CD_RAW_FRAME_SIZE) {
-#else
 /* read a frame */
 if(ioctl(fd, CDIOCREADAUDIO, cdda)  0) {
+#else
+if (pread(fd, data, CD_RAW_FRAME_SIZE, frame * CD_RAW_FRAME_SIZE) != 
CD_RAW_FRAME_SIZE) {
 #endif
   perror(CDIOCREADAUDIO);
   return -1;
only in patch2:
unchanged:
--- xine-lib-1.1.8.orig/src/input/media_helper.c
+++ xine-lib-1.1.8/src/input/media_helper.c
@@ -36,7 +36,7 @@
 #include unistd.h
 #include string.h
 
-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || 
defined(__FreeBSD_kernel__) 
 #include sys/cdio.h /* CDIOCALLOW etc... */
 #elif defined(HAVE_LINUX_CDROM_H)
 #include linux/cdrom.h
@@ -130,7 +130,7 @@
   return 0;
 }
 
-#elif defined (__NetBSD__) || defined (__OpenBSD__) || defined (__FreeBSD__)
+#elif defined (__NetBSD__) || defined (__OpenBSD__) || defined (__FreeBSD__) 
|| defined (__FreeBSD_kernel__)
 
 if (ioctl(fd, CDIOCALLOW) == -1) {
   xprintf(xine, XINE_VERBOSITY_DEBUG, ioctl(cdromallow): %s\n, 
strerror(errno));
only in patch2:
unchanged:
---