1 /* This is an implementation of the threads API of POSIX 1003.1-2001.
3 * --------------------------------------------------------------------------
5 * Pthreads-win32 - POSIX Threads Library for Win32
6 * Copyright(C) 1998 John E. Bossom
7 * Copyright(C) 1999,2005 Pthreads-win32 contributors
9 * Contact Email: rpj@callisto.canberra.edu.au
11 * The current list of contributors is contained
12 * in the file CONTRIBUTORS included with the source
13 * code distribution. The list can also be seen at the
14 * following World Wide Web location:
15 * http://sources.redhat.com/pthreads-win32/contributors.html
17 * This library is free software; you can redistribute it and/or
18 * modify it under the terms of the GNU Lesser General Public
19 * License as published by the Free Software Foundation; either
20 * version 2 of the License, or (at your option) any later version.
22 * This library is distributed in the hope that it will be useful,
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25 * Lesser General Public License for more details.
27 * You should have received a copy of the GNU Lesser General Public
28 * License along with this library in the file COPYING.LIB;
29 * if not, write to the Free Software Foundation, Inc.,
30 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
37 * Note: the correct __CLEANUP_* macro must be defined corresponding to
38 * the definition used for the object file builds. This is done in the
39 * relevent makefiles for the command line builds, but users should ensure
40 * that their resource compiler knows what it is too.
41 * If using the default (no __CLEANUP_* defined), pthread.h will define it
45 #if defined(__MINGW64__)
46 # define PTW32_ARCH "x64 (mingw64)"
47 #elif defined (__MINGW32__)
48 # define PTW32_ARCH "x86 (mingw32)"
50 #if defined(PTW32_ARCHx64)
51 # define PTW32_ARCH "x64"
52 #elif defined(PTW32_ARCHx86)
53 # define PTW32_ARCH "x86"
56 #if defined(PTW32_RC_MSC)
57 # if defined(__CLEANUP_C)
58 # define PTW32_VERSIONINFO_NAME "pthreadVC2.DLL\0"
59 # define PTW32_VERSIONINFO_DESCRIPTION "MS C " PTW32_ARCH "\0"
60 # elif defined(__CLEANUP_CXX)
61 # define PTW32_VERSIONINFO_NAME "pthreadVCE2.DLL\0"
62 # define PTW32_VERSIONINFO_DESCRIPTION "MS C++ " PTW32_ARCH "\0"
63 # elif defined(__CLEANUP_SEH)
64 # define PTW32_VERSIONINFO_NAME "pthreadVSE2.DLL\0"
65 # define PTW32_VERSIONINFO_DESCRIPTION "MS C SEH " PTW32_ARCH "\0"
67 # error Resource compiler doesn't know which cleanup style you're using - see version.rc
69 #elif defined(__GNUC__)
70 # if defined(__CLEANUP_C)
71 # define PTW32_VERSIONINFO_NAME "pthreadGC2.DLL\0"
72 # define PTW32_VERSIONINFO_DESCRIPTION "GNU C " PTW32_ARCH "\0"
73 # elif defined(__CLEANUP_CXX)
74 # define PTW32_VERSIONINFO_NAME "pthreadGCE2.DLL\0"
75 # define PTW32_VERSIONINFO_DESCRIPTION "GNU C++ " PTW32_ARCH "\0"
77 # error Resource compiler doesn't know which cleanup style you're using - see version.rc
79 #elif defined(__BORLANDC__)
80 # if defined(__CLEANUP_C)
81 # define PTW32_VERSIONINFO_NAME "pthreadBC2.DLL\0"
82 # define PTW32_VERSIONINFO_DESCRIPTION "BORLAND C " PTW32_ARCH "\0"
83 # elif defined(__CLEANUP_CXX)
84 # define PTW32_VERSIONINFO_NAME "pthreadBCE2.DLL\0"
85 # define PTW32_VERSIONINFO_DESCRIPTION "BORLAND C++ " PTW32_ARCH "\0"
87 # error Resource compiler doesn't know which cleanup style you're using - see version.rc
89 #elif defined(__WATCOMC__)
90 # if defined(__CLEANUP_C)
91 # define PTW32_VERSIONINFO_NAME "pthreadWC2.DLL\0"
92 # define PTW32_VERSIONINFO_DESCRIPTION "WATCOM C " PTW32_ARCH "\0"
93 # elif defined(__CLEANUP_CXX)
94 # define PTW32_VERSIONINFO_NAME "pthreadWCE2.DLL\0"
95 # define PTW32_VERSIONINFO_DESCRIPTION "WATCOM C++ " PTW32_ARCH "\0"
97 # error Resource compiler doesn't know which cleanup style you're using - see version.rc
100 # error Resource compiler doesn't know which compiler you're using - see version.rc
104 VS_VERSION_INFO VERSIONINFO
105 FILEVERSION PTW32_VERSION
106 PRODUCTVERSION PTW32_VERSION
107 FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
109 FILEOS VOS__WINDOWS32
112 BLOCK "StringFileInfo"
116 VALUE "ProductName", "POSIX Threads for Windows LPGL\0"
117 VALUE "ProductVersion", PTW32_VERSION_STRING
118 VALUE "FileVersion", PTW32_VERSION_STRING
119 VALUE "FileDescription", PTW32_VERSIONINFO_DESCRIPTION
120 VALUE "InternalName", PTW32_VERSIONINFO_NAME
121 VALUE "OriginalFilename", PTW32_VERSIONINFO_NAME
122 VALUE "CompanyName", "Open Source Software community LGPL\0"
123 VALUE "LegalCopyright", "Copyright (C) Project contributors 2012\0"
124 VALUE "Comments", "http://sourceware.org/pthreads-win32/\0"
129 VALUE "Translation", 0x409, 1200
136 The VERSIONINFO resource-definition statement creates a version-information
137 resource. The resource contains such information about the file as its
138 version number, its intended operating system, and its original filename.
139 The resource is intended to be used with the Version Information functions.
141 versionID VERSIONINFO fixed-info { block-statement...}
144 Version-information resource identifier. This value must be 1.
147 Version information, such as the file version and the intended operating
148 system. This parameter consists of the following statements.
151 Statement Description
152 --------------------------------------------------------------------------
154 version Binary version number for the file. The version
155 consists of two 32-bit integers, defined by four
156 16-bit integers. For example, "FILEVERSION 3,10,0,61"
157 is translated into two doublewords: 0x0003000a and
158 0x0000003d, in that order. Therefore, if version is
159 defined by the DWORD values dw1 and dw2, they need
160 to appear in the FILEVERSION statement as follows:
161 HIWORD(dw1), LOWORD(dw1), HIWORD(dw2), LOWORD(dw2).
163 version Binary version number for the product with which the
164 file is distributed. The version parameter is two
165 32-bit integers, defined by four 16-bit integers.
166 For more information about version, see the
167 FILEVERSION description.
169 fileflagsmask Bits in the FILEFLAGS statement are valid. If a bit
170 is set, the corresponding bit in FILEFLAGS is valid.
171 FILEFLAGSfileflags Attributes of the file. The fileflags parameter must
172 be the combination of all the file flags that are
173 valid at compile time. For 16-bit Windows, this
175 FILEOSfileos Operating system for which this file was designed.
176 The fileos parameter can be one of the operating
177 system values given in the Remarks section.
178 FILETYPEfiletype General type of file. The filetype parameter can be
179 one of the file type values listed in the Remarks
182 subtype Function of the file. The subtype parameter is zero
183 unless the type parameter in the FILETYPE statement
184 is VFT_DRV, VFT_FONT, or VFT_VXD. For a list of file
185 subtype values, see the Remarks section.
188 Specifies one or more version-information blocks. A block can contain
189 string information or variable information. For more information, see
190 StringFileInfo Block or VarFileInfo Block.
194 To use the constants specified with the VERSIONINFO statement, you must
195 include the Winver.h or Windows.h header file in the resource-definition file.
197 The following list describes the parameters used in the VERSIONINFO statement:
200 A combination of the following values.
204 VS_FF_DEBUG File contains debugging information or is compiled
205 with debugging features enabled.
206 VS_FF_PATCHED File has been modified and is not identical to the
207 original shipping file of the same version number.
208 VS_FF_PRERELEASE File is a development version, not a commercially
210 VS_FF_PRIVATEBUILD File was not built using standard release procedures.
211 If this value is given, the StringFileInfo block must
212 contain a PrivateBuild string.
213 VS_FF_SPECIALBUILD File was built by the original company using standard
214 release procedures but is a variation of the standard
215 file of the same version number. If this value is
216 given, the StringFileInfo block must contain a
220 One of the following values.
224 VOS_UNKNOWN The operating system for which the file was designed
226 VOS_DOS File was designed for MS-DOS.
227 VOS_NT File was designed for Windows Server 2003 family,
228 Windows XP, Windows 2000, or Windows NT.
229 VOS__WINDOWS16 File was designed for 16-bit Windows.
230 VOS__WINDOWS32 File was designed for 32-bit Windows.
231 VOS_DOS_WINDOWS16 File was designed for 16-bit Windows running with
233 VOS_DOS_WINDOWS32 File was designed for 32-bit Windows running with
235 VOS_NT_WINDOWS32 File was designed for Windows Server 2003 family,
236 Windows XP, Windows 2000, or Windows NT.
238 The values 0x00002L, 0x00003L, 0x20000L and 0x30000L are reserved.
241 One of the following values.
245 VFT_UNKNOWN File type is unknown.
246 VFT_APP File contains an application.
247 VFT_DLL File contains a dynamic-link library (DLL).
248 VFT_DRV File contains a device driver. If filetype is
249 VFT_DRV, subtype contains a more specific
250 description of the driver.
251 VFT_FONT File contains a font. If filetype is VFT_FONT,
252 subtype contains a more specific description of the
254 VFT_VXD File contains a virtual device.
255 VFT_STATIC_LIB File contains a static-link library.
257 All other values are reserved for use by Microsoft.
260 Additional information about the file type.
262 If filetype specifies VFT_DRV, this parameter can be one of the
267 VFT2_UNKNOWN Driver type is unknown.
268 VFT2_DRV_COMM File contains a communications driver.
269 VFT2_DRV_PRINTER File contains a printer driver.
270 VFT2_DRV_KEYBOARD File contains a keyboard driver.
271 VFT2_DRV_LANGUAGE File contains a language driver.
272 VFT2_DRV_DISPLAY File contains a display driver.
273 VFT2_DRV_MOUSE File contains a mouse driver.
274 VFT2_DRV_NETWORK File contains a network driver.
275 VFT2_DRV_SYSTEM File contains a system driver.
276 VFT2_DRV_INSTALLABLE File contains an installable driver.
277 VFT2_DRV_SOUND File contains a sound driver.
278 VFT2_DRV_VERSIONED_PRINTER File contains a versioned printer driver.
280 If filetype specifies VFT_FONT, this parameter can be one of the
285 VFT2_UNKNOWN Font type is unknown.
286 VFT2_FONT_RASTER File contains a raster font.
287 VFT2_FONT_VECTOR File contains a vector font.
288 VFT2_FONT_TRUETYPE File contains a TrueType font.
290 If filetype specifies VFT_VXD, this parameter must be the virtual-device
291 identifier included in the virtual-device control block.
293 All subtype values not listed here are reserved for use by Microsoft.
296 One of the following language codes.
298 Code Language Code Language
300 0x0401 Arabic 0x0415 Polish
301 0x0402 Bulgarian 0x0416 Portuguese (Brazil)
302 0x0403 Catalan 0x0417 Rhaeto-Romanic
303 0x0404 Traditional Chinese 0x0418 Romanian
304 0x0405 Czech 0x0419 Russian
305 0x0406 Danish 0x041A Croato-Serbian (Latin)
306 0x0407 German 0x041B Slovak
307 0x0408 Greek 0x041C Albanian
308 0x0409 U.S. English 0x041D Swedish
309 0x040A Castilian Spanish 0x041E Thai
310 0x040B Finnish 0x041F Turkish
311 0x040C French 0x0420 Urdu
312 0x040D Hebrew 0x0421 Bahasa
313 0x040E Hungarian 0x0804 Simplified Chinese
314 0x040F Icelandic 0x0807 Swiss German
315 0x0410 Italian 0x0809 U.K. English
316 0x0411 Japanese 0x080A Mexican Spanish
317 0x0412 Korean 0x080C Belgian French
318 0x0413 Dutch 0x0C0C Canadian French
319 0x0414 Norwegian – Bokmal 0x100C Swiss French
320 0x0810 Swiss Italian 0x0816 Portuguese (Portugal)
321 0x0813 Belgian Dutch 0x081A Serbo-Croatian (Cyrillic)
322 0x0814 Norwegian – Nynorsk
325 One of the following character-set identifiers.
327 Identifier Character Set
330 932 Japan (Shift
\e%G–
\e%@ JIS X-0208)
331 949 Korea (Shift
\e%G–
\e%@ KSC 5601)
334 1250 Latin-2 (Eastern European)
343 One of the following predefined names.
347 Comments Additional information that should be displayed for
349 CompanyName Company that produced the file
\e%G—
\e%@for example,
350 "Microsoft Corporation" or "Standard Microsystems
351 Corporation, Inc." This string is required.
352 FileDescription File description to be presented to users. This
353 string may be displayed in a list box when the user
354 is choosing files to install
\e%G—
\e%@for example,
355 "Keyboard Driver for AT-Style Keyboards". This
357 FileVersion Version number of the file
\e%G—
\e%@for example,
358 "3.10" or "5.00.RC2". This string is required.
359 InternalName Internal name of the file, if one exists — for
360 example, a module name if the file is a dynamic-link
361 library. If the file has no internal name, this
362 string should be the original filename, without
363 extension. This string is required.
364 LegalCopyright Copyright notices that apply to the file. This
365 should include the full text of all notices, legal
366 symbols, copyright dates, and so on — for example,
367 "Copyright (C) Microsoft Corporation 1990–1999".
368 This string is optional.
369 LegalTrademarks Trademarks and registered trademarks that apply to
370 the file. This should include the full text of all
371 notices, legal symbols, trademark numbers, and so on.
372 This string is optional.
373 OriginalFilename Original name of the file, not including a path.
374 This information enables an application to determine
375 whether a file has been renamed by a user. The
376 format of the name depends on the file system for
377 which the file was created. This string is required.
378 PrivateBuild Information about a private version of the file — for
379 example, "Built by TESTER1 on \TESTBED". This string
380 should be present only if VS_FF_PRIVATEBUILD is
381 specified in the fileflags parameter of the root
383 ProductName Name of the product with which the file is
384 distributed. This string is required.
385 ProductVersion Version of the product with which the file is
386 distributed — for example, "3.10" or "5.00.RC2".
387 This string is required.
388 SpecialBuild Text that indicates how this version of the file
389 differs from the standard version — for example,
390 "Private build for TESTER1 solving mouse problems
391 on M250 and M250E computers". This string should be
392 present only if VS_FF_SPECIALBUILD is specified in
393 the fileflags parameter of the root block.