[Mono-bugs] [Bug 349952] New: Installed header mono/metadata/threads.h refers to/ requires uninstalled private header mono/metadata/threads-types.h

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Dec 19 19:27:52 EST 2007


           Summary: Installed header mono/metadata/threads.h refers
                    to/requires uninstalled private header
           Product: Mono: Runtime
           Version: 1.2.6
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: packaging
        AssignedTo: wberrier at novell.com
        ReportedBy: ed at catmur.co.uk
         QAContact: mono-bugs at ximian.com
          Found By: ---

While compiling mono-bridge in openoffice, against the installed mono
development headers from mono-1.2.6:

LAR_JAVA -DOOG680=OOG680   -DSHAREDLIB -D_DLL_   -fexceptions
-fno-enforce-eh-specs -DEXCEPTIONS_ON  -o ../../unxlngi6.pro/slo/mono_bridge.o
In file included from
/usr/lib/pkgconfig/../../include/mono-1.0/mono/metadata/threads.h:17:41: error:
mono/metadata/threads-types.h: No such file or directory
In file included from
/usr/lib/pkgconfig/../../include/mono-1.0/mono/metadata/threads.h:70: error:
'MonoThreadState' has not been declared
/usr/lib/pkgconfig/../../include/mono-1.0/mono/metadata/threads.h:71: error:
'MonoThreadState' has not been declared
/usr/lib/pkgconfig/../../include/mono-1.0/mono/metadata/threads.h:72: error:
'MonoThreadState' has not been declared
distcc[14428] ERROR: compile
on localhost failed
dmake:  Error code 1, while making '../../unxlngi6.pro/slo/mono_bridge.obj'
---* tg_merge.mk *---

The issue was introduced by rev85138 in svn, 1.2.6 branch, which created a
dependency of the installed header mono/metadata/threads.h on the uninstalled
private header mono/metadata/threads-types.h:

Filename: trunk/mono/mono/metadata/threads.h
Revision 87516 - (view) (download) - [select for diffs]
Modified Mon Oct 15 14:49:11 2007 UTC (2 months ago) by dick
File length: 2785 byte(s)
Diff to previous 85138

2007-10-15  Dick Porter  <dick at ximian.com>

        * monitor.c (mono_monitor_try_enter_internal): Set thread state to
        WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug

        * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
        instead of a monitor lock.  This means that monitor_try_enter and
        co can set the thread state safely.
        (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
        thread_interrupt_requested, so interrupt actually works.

        * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
        ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
        state accessor function

The commit added to mono/metadata/threads.h:

#include <mono/metadata/threads-types.h>
extern void mono_thread_set_state (MonoThread *thread, MonoThreadState state);
extern void mono_thread_clr_state (MonoThread *thread, MonoThreadState state);
extern gboolean mono_thread_test_state (MonoThread *thread, MonoThreadState

But MonoThreadState is an enum defined in mono/metadata/threads-types.h, and
mono/metadata/threads-types.h is not installed to the system include
directories.  It is described as "private" in the checkin comments on svn.

Suggested possible fixes:
1. modify Makefile.am to install mono/metadata/threads-types.h
2. move definition of MonoThreadState to mono/metadata/threads.h
3. move mono_thread_{set,clr,test}_state prototypes to

This was originally observed on Gentoo Linux, downstream bug report:

Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the mono-bugs mailing list