On Sunday 11 January 2009 18:07:23 Dan Langille wrote:
> Eric Bollengier wrote:
> > Le Saturday 10 January 2009 01:02:10 Dan Langille, vous avez écrit :
> >> Eric Bollengier wrote:
> >>> Hello Dan,
> >>>
> >>> The "pthread" type is not defined on linux... (i have a pthread_t
> >>> instead) And on linux, pthread_t is an integer, which seems to
> >>> different on freebsd.
> >>>
> >>> Maybe i can use a void * cast at this place ?
> >
> > I have take a look to freebsd7 man pages, and they use pthread_t object
> > too.
>
> What cast do you want me to try?  The following compiles cleanly:
>
> -              jcr->use_count(), (int)jcr->my_thread_id);
> +              jcr->use_count(), (pthread *)jcr->my_thread_id);

(pthread *) is not portable, so we cannot use it.

>
> >> or an #ifdef based on the OS?
> >
> > At this place, i would like to display the same thing than in gdb
> > backtrace.
>
> I suspect pthread_t on Linux differs from pthread_t on FreeBSD.
>
> > Bye
> >
> >>> Bye
> >>>
> >>> Le Friday 09 January 2009 19:42:18 Dan Langille, vous avez écrit :
> >>>> Hi,
> >>>>
> >>>> In FreeBSD 7.x, we have a newer gcc, which is being extra picky about
> >>>> precision when casting.
> >>>> One of the FreeBSD porters has done some work in this area.  His
> >>>> patches are here (and I have
> >>>> pasted them to the end of this message):
> >>>>
> >>>>    http://www.atarininja.org/patches/bacula-server-devel.diff
> >>>>
> >>>> NOTE: Ignore the first two three patches (they apply only to the
> >>>> FreeBSD ports skelton, and not
> >>>> to Bacula code).
> >>>>
> >>>> I will apply these patches to my local working copy and run the
> >>>> regression tests on them.  If all
> >>>> goes well, I will commit them this weekend.
> >>>>
> >>>>
> >>>> diff -N files/patch-src-cats-sql.c
> >>>> --- /dev/null    1 Jan 1970 00:00:00 -0000
> >>>> +++ files/patch-src-cats-sql.c   9 Jan 2009 17:03:48 -0000
> >>>> @@ -0,0 +1,11 @@
> >>>> +--- src/cats/sql.c.orig 2009-01-09 12:01:38.100486989 -0500
> >>>> ++++ src/cats/sql.c      2009-01-09 12:02:01.559498120 -0500
> >>>> +@@ -759,7 +759,7 @@
> >>>> +    if (mdb->lock.valid == RWLOCK_VALID) {
> >>>> +       fprintf(fp, "\tRWLOCK=%p w_active=%i w_wait=%i\n", &mdb->lock,
> >>>> mdb->lock.w_active, mdb->lock.w_wait);
> >>>> + #ifndef HAVE_WIN32
> >>>> +-      fprintf(fp, "\t\tthreadid=0x%x mutex=%p\n", (int)mdb-
> >>>>
> >>>>  >lock.writer_id, &mdb->lock.mutex);
> >>>>
> >>>> ++      fprintf(fp, "\t\tthreadid=0x%x mutex=%p\n", (pthread *)mdb-
> >>>>
> >>>>  >lock.writer_id, &mdb->lock.mutex);
> >>>>
> >>>> + #endif
> >>>> +    }
> >>>> + }
> >>>> Index: files/patch-src-lib-jcr.c
> >>>> ===================================================================
> >>>> RCS file: files/patch-src-lib-jcr.c
> >>>> diff -N files/patch-src-lib-jcr.c
> >>>> --- /dev/null    1 Jan 1970 00:00:00 -0000
> >>>> +++ files/patch-src-lib-jcr.c    9 Jan 2009 16:46:17 -0000
> >>>> @@ -0,0 +1,11 @@
> >>>> +--- src/lib/jcr.c.orig  2009-01-09 11:31:00.223575817 -0500
> >>>> ++++ src/lib/jcr.c       2009-01-09 11:31:31.054591212 -0500
> >>>> +@@ -1064,7 +1064,7 @@
> >>>> +               jcr->use_count());
> >>>> + #else
> >>>> +       fprintf(fp, "\tuse_count=%i threadid=0x%x\n",
> >>>> +-              jcr->use_count(), (int)jcr->my_thread_id);
> >>>> ++              jcr->use_count(), (pthread *)jcr->my_thread_id);
> >>>> + #endif
> >>>> +       fprintf(fp, "\tJobType=%c JobLevel=%c\n",
> >>>> +               jcr->get_JobType(), jcr->get_JobLevel());
> >>>
> >>> -----------------------------------------------------------------------
> >>>--
>
> ---------------------------------------------------------------------------
>--- Check out the new SourceForge.net Marketplace.
> It is the best place to buy or sell services for
> just about anything Open Source.
> http://p.sf.net/sfu/Xq1LFB
> _______________________________________________
> Bacula-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bacula-devel



------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to