I have attached a script that identifies functions that should be made static (among other things). There are approximately 450 of them, there should be pretty efw false positives, and I will look into them eventually. But if someone beats me to it I sure won't complain <g>.
So if you do try to tackle them you are likely to find that they fall into one of the following categories:
1) Unused debug functions. For instance for dumping the contents of a structure to stderr. Although these are unused we probably want to keep them. Let me know about these and I will put them in an exception list.
2) Functions that should be exported by a spec file It happens. Sometimes the developer implementing a function just forgets to add it to the spec file!
3) Generated functions This typically happens with widl: it generates a bunch of functions for the client / server and proxy cases, but these functions may be unused. I have special code to not warn about these, but there may be other cases. For instance in the list below you will find a number of yy*() functions generated by lex. Either we can tell lex to make them static or to not generate them, or I should make another special case. If you find some of these, let me know.
4) Assembly functions I believe there should not be any of these in the list below. So if you find one let me know.
5) Functions declared in a private header file but implemented and used from a single C file. I'm in favor of removing these functions from the private header and making them static.
6) All the others should be pretty clear-cut.
dlls/advapi32/advapi32.dll.so: CRYPT_DESkey8to7 dlls/browseui/tests/browseui_test.exe.so: strdup_AtoW dlls/browseui/tests/browseui_test.exe.so: TestACL_ACList_AddRef dlls/browseui/tests/browseui_test.exe.so: TestACL_ACList_QueryInterface dlls/browseui/tests/browseui_test.exe.so: TestACL_ACList_Release dlls/browseui/tests/browseui_test.exe.so: TestACL_AddRef dlls/browseui/tests/browseui_test.exe.so: TestACL_Clone dlls/browseui/tests/browseui_test.exe.so: TestACL_Expand dlls/browseui/tests/browseui_test.exe.so: TestACL_Next dlls/browseui/tests/browseui_test.exe.so: TestACL_QueryInterface dlls/browseui/tests/browseui_test.exe.so: TestACL_Release dlls/browseui/tests/browseui_test.exe.so: TestACL_Reset dlls/browseui/tests/browseui_test.exe.so: TestACL_Skip dlls/cabinet/cabinet.dll.so: checksum dlls/cabinet/cabinet.dll.so: make_decode_table dlls/cabinet/cabinet.dll.so: QTMupdatemodel dlls/comctl32/tests/comctl32_test.exe.so: flush_sequence dlls/comdlg32/comdlg32.dll.so: CC_WMCommand dlls/crypt32/crypt32.dll.so: ContextList_Empty dlls/dbghelp/dbghelp.dll.so: hash_table_find dlls/dbghelp/dbghelp.dll.so: hash_table_hash dlls/dbghelp/dbghelp.dll.so: module_find_by_name dlls/dbghelp/dbghelp.dll.so: module_get_container dlls/dinput/dinput.dll.so: DIEnumDevicesCallbackAtoW dlls/dmime/dmime.dll.so: DMUSIC_CreateDirectMusicobjImpl dlls/dmime/dmime.dll.so: DMUSIC_CreateDirectMusicPatternTrackImpl dlls/dmusic/dmusic.dll.so: DMUSIC_CreateDirectMusicBufferImpl dlls/dmusic/dmusic.dll.so: DMUSIC_CreateDirectMusicDownloadedInstrumentImpl dlls/dmusic/dmusic.dll.so: DMUSIC_CreateDirectMusicDownloadImpl dlls/dnsapi/dnsapi.dll.so: dns_ns_name_pton dlls/dplayx/dplayx.dll.so: cbDeleteGroupsElem dlls/dplayx/dplayx.dll.so: cbDeletePlayerElem dlls/dplayx/dplayx.dll.so: DPLAYX_DestroyLobbyApplication dlls/dplayx/dplayx.dll.so: DPLAYX_SetLocalSession dlls/dplayx/dplayx.dll.so: NS_GetOtherMagic dlls/dplayx/dplayx.dll.so: NS_SetRemoteComputerAsNameServer dlls/dsound/dsound.dll.so: DirectSoundCaptureDevice_AddRef dlls/fusion/fusion.dll.so: assembly_get_architecture dlls/fusion/fusion.dll.so: CompareAssemblyIdentity dlls/fusion/fusion.dll.so: GetAssemblyIdentityFromFile dlls/inetcomm/inetcomm.dll.so: InternetTransport_Read dlls/iphlpapi/iphlpapi.dll.so: getInterfaceEntryByIndex dlls/iphlpapi/iphlpapi.dll.so: getInterfacePhysicalByName dlls/itss/itss.dll.so: chm_enumerate dlls/jscript/jscript.dll.so: jsdisp_call dlls/jscript/jscript.dll.so: parser_parse dlls/mountmgr.sys/mountmgr.sys.so: DriverEntry dlls/msacm32/msacm32.dll.so: MSACM_UnregisterLocalDriver dlls/mshtml/mshtml.dll.so: HTMLElementCollection_Create dlls/msi/msi.dll.so: cond_parse dlls/msi/msi.dll.so: ControlEvent_UnSubscribeToEvent dlls/msi/msi.dll.so: db_get_raw_stream dlls/msi/msi.dll.so: encode_streamname dlls/msi/msi.dll.so: find_published_source dlls/msi/msi.dll.so: MSI_DatabaseExport dlls/msi/msi.dll.so: MSI_DatabaseImport dlls/msi/msi.dll.so: msi_dialog_register_class dlls/msi/msi.dll.so: MSI_EnableUIPreview dlls/msi/msi.dll.so: msi_id2stringA dlls/msi/msi.dll.so: msi_id2stringW dlls/msi/msi.dll.so: msi_load_media_info dlls/msi/msi.dll.so: MSI_PreviewDialogW dlls/msi/msi.dll.so: MSI_RecordDataSize dlls/msi/msi.dll.so: MSI_RecordSetStream dlls/msi/msi.dll.so: MSI_RecordSetStringA dlls/msi/msi.dll.so: MSIREG_OpenInstallerFeaturesKey dlls/msi/msi.dll.so: msi_strcmp dlls/msi/msi.dll.so: msi_string2idA dlls/msi/msi.dll.so: msi_ui_error dlls/msi/msi.dll.so: msi_version_dword_to_str dlls/msi/msi.dll.so: reduce_to_shortfilename dlls/msi/msi.dll.so: sql_parse dlls/msxml3/msxml3.dll.so: httprequest_Release dlls/msxml3/msxml3.dll.so: XMLElementCollection_create dlls/netapi32/netapi32.dll.so: NBNameCacheUpdateNBName dlls/ole32/ole32.dll.so: IMalloc16_Constructor dlls/qcap/qcap.dll.so: FreeMediaType dlls/qcap/qcap.dll.so: IPinImpl_QueryInternalConnections dlls/quartz/quartz.dll.so: MemInputPin_AddRef dlls/quartz/quartz.dll.so: MemInputPin_GetAllocator dlls/quartz/quartz.dll.so: MemInputPin_GetAllocatorRequirements dlls/quartz/quartz.dll.so: MemInputPin_NotifyAllocator dlls/quartz/quartz.dll.so: MemInputPin_QueryInterface dlls/quartz/quartz.dll.so: MemInputPin_Receive dlls/quartz/quartz.dll.so: MemInputPin_ReceiveCanBlock dlls/quartz/quartz.dll.so: MemInputPin_ReceiveMultiple dlls/quartz/quartz.dll.so: MemInputPin_Release dlls/quartz/quartz.dll.so: OutputPin_DeliverNewSegment dlls/riched20/riched20.dll.so: ME_ConcatString dlls/riched20/riched20.dll.so: ME_CopyToCF2W dlls/riched20/riched20.dll.so: ME_DestroyEditor dlls/riched20/riched20.dll.so: ME_DITypesEqual dlls/riched20/riched20.dll.so: ME_DrawParagraph dlls/riched20/riched20.dll.so: ME_FindItemFwdOrHere dlls/riched20/riched20.dll.so: ME_FindNextURLCandidate dlls/riched20/riched20.dll.so: ME_FindRowStart dlls/riched20/riched20.dll.so: ME_GetOptimalBuffer dlls/riched20/riched20.dll.so: ME_GetParaFormat dlls/riched20/riched20.dll.so: ME_GetYScrollVisible dlls/riched20/riched20.dll.so: ME_InvalidateFromOfs dlls/riched20/riched20.dll.so: ME_IsCandidateAnURL dlls/riched20/riched20.dll.so: ME_LinkNotify dlls/riched20/riched20.dll.so: ME_MakeEditor dlls/riched20/riched20.dll.so: ME_MakeStringB dlls/riched20/riched20.dll.so: ME_MarkForWrapping dlls/riched20/riched20.dll.so: ME_QueueInvalidateFromCursor dlls/riched20/riched20.dll.so: ME_Scroll dlls/riched20/riched20.dll.so: ME_SelectByType dlls/riched20/riched20.dll.so: ME_SetParaFormat dlls/riched20/riched20.dll.so: ME_ToCFAny dlls/riched20/riched20.dll.so: ME_UpdateLinkAttribute dlls/riched20/riched20.dll.so: ME_UpdateSelection dlls/riched20/riched20.dll.so: ME_UpdateSelectionLinkAttribute dlls/riched20/riched20.dll.so: REComboWndProc dlls/riched20/riched20.dll.so: REListWndProc dlls/riched20/riched20.dll.so: RTFExpandStyle dlls/riched20/riched20.dll.so: RTFGetClassCallback dlls/riched20/riched20.dll.so: RTFGetDestinationCallback dlls/riched20/riched20.dll.so: RTFGetInputName dlls/riched20/riched20.dll.so: RTFGetOutputName dlls/riched20/riched20.dll.so: RTFGetReadHook dlls/riched20/riched20.dll.so: RTFGetStyle dlls/riched20/riched20.dll.so: RTFHexToChar dlls/riched20/riched20.dll.so: RTFPeekToken dlls/riched20/riched20.dll.so: RTFSetClassCallback dlls/riched20/riched20.dll.so: RTFSetInputName dlls/riched20/riched20.dll.so: RTFSetOutputName dlls/riched20/riched20.dll.so: RTFSetToken dlls/riched20/riched20.dll.so: RTFUngetToken dlls/rpcrt4/rpcrt4.dll.so: NCA2RPC_STATUS dlls/rpcrt4/rpcrt4.dll.so: NdrByteCountPointerMemorySize dlls/rpcrt4/rpcrt4.dll.so: NdrRangeBufferSize dlls/rpcrt4/rpcrt4.dll.so: NdrRangeFree dlls/rpcrt4/rpcrt4.dll.so: NdrRangeMarshall dlls/rpcrt4/rpcrt4.dll.so: NdrRangeMemorySize dlls/rpcrt4/rpcrt4.dll.so: RPCRT4_receive_fragment dlls/rpcrt4/rpcrt4.dll.so: RPCRT4_SpawnConnection dlls/rpcrt4/rpcrt4.dll.so: RPCRT4_ValidateCommonHeader dlls/rsaenh/rsaenh.dll.so: alloc_handle_table dlls/rsaenh/rsaenh.dll.so: mp_2expt dlls/rsaenh/rsaenh.dll.so: mp_abs dlls/rsaenh/rsaenh.dll.so: mp_add_d dlls/rsaenh/rsaenh.dll.so: mp_clamp dlls/rsaenh/rsaenh.dll.so: mp_clear dlls/rsaenh/rsaenh.dll.so: mp_cmp_mag dlls/rsaenh/rsaenh.dll.so: mp_cnt_lsb dlls/rsaenh/rsaenh.dll.so: mp_div dlls/rsaenh/rsaenh.dll.so: mp_div_2 dlls/rsaenh/rsaenh.dll.so: mp_div_2d dlls/rsaenh/rsaenh.dll.so: mp_div_d dlls/rsaenh/rsaenh.dll.so: mp_dr_reduce dlls/rsaenh/rsaenh.dll.so: mp_dr_setup dlls/rsaenh/rsaenh.dll.so: mp_exch dlls/rsaenh/rsaenh.dll.so: mp_grow dlls/rsaenh/rsaenh.dll.so: mp_init dlls/rsaenh/rsaenh.dll.so: mp_init_size dlls/rsaenh/rsaenh.dll.so: mp_lshd dlls/rsaenh/rsaenh.dll.so: mp_mod_2d dlls/rsaenh/rsaenh.dll.so: mp_mod_d dlls/rsaenh/rsaenh.dll.so: mp_montgomery_calc_normalization dlls/rsaenh/rsaenh.dll.so: mp_montgomery_reduce dlls/rsaenh/rsaenh.dll.so: mp_montgomery_setup dlls/rsaenh/rsaenh.dll.so: mp_mul_2 dlls/rsaenh/rsaenh.dll.so: mp_mul_2d dlls/rsaenh/rsaenh.dll.so: mp_mul_d dlls/rsaenh/rsaenh.dll.so: mp_prime_is_divisible dlls/rsaenh/rsaenh.dll.so: mp_prime_is_prime dlls/rsaenh/rsaenh.dll.so: mp_prime_miller_rabin dlls/rsaenh/rsaenh.dll.so: mp_reduce dlls/rsaenh/rsaenh.dll.so: mp_reduce_2k dlls/rsaenh/rsaenh.dll.so: mp_reduce_2k_setup dlls/rsaenh/rsaenh.dll.so: mp_reduce_setup dlls/rsaenh/rsaenh.dll.so: mp_rshd dlls/rsaenh/rsaenh.dll.so: mp_set dlls/rsaenh/rsaenh.dll.so: mp_signed_bin_size dlls/rsaenh/rsaenh.dll.so: mp_sqr dlls/rsaenh/rsaenh.dll.so: mp_sqrmod dlls/rsaenh/rsaenh.dll.so: mp_zero dlls/rsaenh/rsaenh.dll.so: release_handle_table dlls/sane.ds/sane.ds.so: SANE_AutomaticCaptureDirectory dlls/sane.ds/sane.ds.so: SANE_FileSystemCopy dlls/sane.ds/sane.ds.so: SANE_PendingXfersStopFeeder dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2Get dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2GetDefault dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2Reset dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2Set dlls/secur32/secur32.dll.so: SECUR32_initNegotiateSP dlls/secur32/secur32.dll.so: SECUR32_strdupW dlls/setupapi/setupapi.dll.so: PARSER_string_substW dlls/setupapi/setupapi.dll.so: VcpEnumFiles dlls/setupapi/setupapi.dll.so: VcpFlush16 dlls/setupapi/setupapi.dll.so: vsmStringCompare16 dlls/setupapi/setupapi.dll.so: vsmStringFind16 dlls/shell32/shell32.dll.so: HCR_GetDefaultIconFromGUIDW dlls/shell32/shell32.dll.so: ILGetDisplayNameExA dlls/shell32/shell32.dll.so: _ILGetSTextPointer dlls/shell32/shell32.dll.so: _ILGetTextPointerW dlls/shell32/shell32.dll.so: RenderFILECONTENTS dlls/shell32/shell32.dll.so: RenderFILEDESCRIPTOR dlls/shell32/shell32.dll.so: RenderPREFEREDDROPEFFECT dlls/shell32/shell32.dll.so: RenderSHELLIDLISTOFFSET dlls/shell32/shell32.dll.so: SHILCreateFromPathA dlls/shell32/shell32.dll.so: TRASH_DisposeElement dlls/shell32/shell32.dll.so: XDG_GetPath dlls/user32/user32.dll.so: EditWndProcW dlls/user32/user32.dll.so: LookupIconIdFromDirectory16 dlls/uxtheme/uxtheme.dll.so: UXINI_ResetINI dlls/w32skrnl/w32skrnl.dll.so: _GetThunkBuff dlls/winealsa.drv/winealsa.drv.so: ALSA_PeekRingMessage dlls/winealsa.drv/winealsa.drv.so: wodSetVolume dlls/winedos/winedos.dll.so: DOSDEV_Console dlls/winedos/winedos.dll.so: DOSDEV_FindCharDevice dlls/winedos/winedos.dll.so: DOSDEV_IoctlRead dlls/winedos/winedos.dll.so: DOSDEV_IoctlWrite dlls/winedos/winedos.dll.so: DOSDEV_Peek dlls/winedos/winedos.dll.so: DOSDEV_Read dlls/winedos/winedos.dll.so: DOSDEV_Write dlls/winedos/winedos.dll.so: DOSVM_AllocCodeUMB dlls/winedos/winedos.dll.so: DOSVM_AllocUMB dlls/winedos/winedos.dll.so: DPMI_FreeInternalRMCB dlls/winedos/winedos.dll.so: VGA_SetQuadPalette dlls/winedos/winedos.dll.so: VGA_SetTextAttribute dlls/wineps.drv/wineps.drv.so: PSDRV_CmpColor dlls/wineps.drv/wineps.drv.so: PSDRV_WriteArrayGet dlls/wineps.drv/wineps.drv.so: PSDRV_WriteInitClip dlls/wineps.drv/wineps.drv.so: PSDRV_WriteRRectangle dlls/winex11.drv/winex11.drv.so: X11DRV_get_client_window dlls/winex11.drv/winex11.drv.so: X11DRV_SetupGCForPen dlls/winex11.drv/winex11.drv.so: X11DRV_window_to_X_rect dlls/winex11.drv/winex11.drv.so: X11DRV_XF86VM_SetExclusiveMode dlls/winex11.drv/winex11.drv.so: X11DRV_XRandR_Cleanup dlls/winhttp/winhttp.dll.so: netconn_set_timeout dlls/wininet/wininet.dll.so: HTTP_FinishedReading dlls/wininet/wininet.dll.so: HTTP_GetHeader dlls/wininet/wininet.dll.so: HTTP_HttpOpenRequestW dlls/wininet/wininet.dll.so: HTTP_HttpSendRequestW dlls/winmm/winmm.dll.so: MCI_DefYieldProc dlls/winmm/winmm.dll.so: MCI_GetDriverFromString dlls/winmm/winmm.dll.so: MCI_SendCommandFrom16 dlls/winmm/winmm.dll.so: MCI_SendCommandFrom32 dlls/winmm/winmm.dll.so: MCI_WriteString dlls/wintrust/wintrust.dll.so: CRYPT_AsnEncodeInt dlls/wintrust/wintrust.dll.so: WINTRUST_ReAlloc dlls/wnaspi32/wnaspi32.dll.so: ASPI_SendASPICommand dlls/wnaspi32/wnaspi32.dll.so: SCSI_GetDeviceName dlls/wuapi/wuapi.dll.so: AutomaticUpdates_create programs/cmd/cmd.exe.so: handleExpansion programs/cmd/cmd.exe.so: WCMD_addCommand programs/cmd/cmd.exe.so: WCMD_ask_confirm programs/cmd/cmd.exe.so: WCMD_dir_sort programs/cmd/cmd.exe.so: WCMD_filesize64 programs/cmd/cmd.exe.so: WCMD_opt_s_strip_quotes programs/cmd/cmd.exe.so: WCMD_parse programs/cmd/cmd.exe.so: WCMD_show_prompt programs/cmd/cmd.exe.so: WCMD_strrev programs/cmd/cmd.exe.so: WCMD_strtrim_trailing_spaces programs/oleview/oleview.exe.so: AddToStrW programs/oleview/oleview.exe.so: AddToTLDataStrW programs/oleview/oleview.exe.so: AddToTLDataStrWithTabsW programs/oleview/oleview.exe.so: CreateInstOnProc programs/oleview/oleview.exe.so: DetailsProc programs/oleview/oleview.exe.so: InterfaceViewerProc programs/oleview/oleview.exe.so: PaneProc programs/oleview/oleview.exe.so: SysConfProc programs/oleview/oleview.exe.so: TreeProc programs/oleview/oleview.exe.so: TypeLibProc programs/oleview/oleview.exe.so: WndProc programs/progman/progman.exe.so: DIALOG_Symbol programs/regedit/regedit.exe.so: GetMultiByteStringN programs/regedit/regedit.exe.so: GetRootKeyName programs/regedit/regedit.exe.so: GetWideStringN programs/regedit/regedit.exe.so: HexEdit_Unregister programs/regedit/regedit.exe.so: processRegLinesA programs/regedit/regedit.exe.so: processRegLinesW programs/taskmgr/taskmgr.exe.so: Draw3dRect programs/taskmgr/taskmgr.exe.so: Draw3dRect2 programs/taskmgr/taskmgr.exe.so: FillSolidRect2 programs/taskmgr/taskmgr.exe.so: GraphCtrl_DrawPoint programs/taskmgr/taskmgr.exe.so: GraphCtrl_InvalidateCtrl programs/taskmgr/taskmgr.exe.so: GraphCtrl_Paint programs/taskmgr/taskmgr.exe.so: GraphCtrl_Resize programs/taskmgr/taskmgr.exe.so: TrayIcon_GetProcessorUsageIcon programs/taskmgr/taskmgr.exe.so: UpdateApplicationListControlViewSetting programs/view/view.exe.so: FileIsPlaceable programs/view/view.exe.so: GetPlaceableMetaFile programs/winecfg/winecfg.exe.so: enumerate_valuesW programs/wineconsole/wineconsole.exe.so: WCUSER_AreFontsEqual programs/wineconsole/wineconsole.exe.so: WINECON_FetchCells programs/wineconsole/wineconsole.exe.so: WINECON_GetHistoryMode programs/wineconsole/wineconsole.exe.so: WINECON_SetHistoryMode programs/wineconsole/wineconsole.exe.so: WINECON_SetHistorySize programs/winedbg/winedbg.exe.so: be_cpu_build_addr programs/winedbg/winedbg.exe.so: be_cpu_linearize programs/winedbg/winedbg.exe.so: dbg_alloc programs/winedbg/winedbg.exe.so: dbg__create_buffer programs/winedbg/winedbg.exe.so: dbg__delete_buffer programs/winedbg/winedbg.exe.so: dbg__flush_buffer programs/winedbg/winedbg.exe.so: dbg_free programs/winedbg/winedbg.exe.so: dbg_get_debug programs/winedbg/winedbg.exe.so: dbg_get_in programs/winedbg/winedbg.exe.so: dbg_get_leng programs/winedbg/winedbg.exe.so: dbg_get_lineno programs/winedbg/winedbg.exe.so: dbg_get_out programs/winedbg/winedbg.exe.so: dbg_get_text programs/winedbg/winedbg.exe.so: dbg_lex_destroy programs/winedbg/winedbg.exe.so: dbg_outputA programs/winedbg/winedbg.exe.so: dbg_parse programs/winedbg/winedbg.exe.so: dbg_pop_buffer_state programs/winedbg/winedbg.exe.so: dbg_push_buffer_state programs/winedbg/winedbg.exe.so: dbg_realloc programs/winedbg/winedbg.exe.so: dbg_restart programs/winedbg/winedbg.exe.so: dbg__scan_buffer programs/winedbg/winedbg.exe.so: dbg__scan_bytes programs/winedbg/winedbg.exe.so: dbg__scan_string programs/winedbg/winedbg.exe.so: dbg_set_debug programs/winedbg/winedbg.exe.so: dbg_set_in programs/winedbg/winedbg.exe.so: dbg_set_lineno programs/winedbg/winedbg.exe.so: dbg_set_out programs/winedbg/winedbg.exe.so: dbg__switch_to_buffer programs/winedbg/winedbg.exe.so: dbg_wrap programs/winedbg/winedbg.exe.so: expr_alloc_uconstant programs/winedbg/winedbg.exe.so: lexeme_alloc programs/winedbg/winedbg.exe.so: parser programs/winedbg/winedbg.exe.so: validate_file programs/winemine/winemine.exe.so: AboutDlgProc programs/winemine/winemine.exe.so: AddFlag programs/winemine/winemine.exe.so: CompleteBox programs/winemine/winemine.exe.so: CompleteBoxes programs/winemine/winemine.exe.so: CreateBoard programs/winemine/winemine.exe.so: DestroyBoard programs/winemine/winemine.exe.so: DrawBoard programs/winemine/winemine.exe.so: DrawFace programs/winemine/winemine.exe.so: DrawLeds programs/winemine/winemine.exe.so: DrawMine programs/winemine/winemine.exe.so: DrawMines programs/winemine/winemine.exe.so: InitBoard programs/winemine/winemine.exe.so: LoadBoard programs/winemine/winemine.exe.so: MainProc programs/winemine/winemine.exe.so: PlaceMines programs/winemine/winemine.exe.so: PressBox programs/winemine/winemine.exe.so: PressBoxes programs/winemine/winemine.exe.so: SaveBoard programs/winemine/winemine.exe.so: SetDifficulty programs/winemine/winemine.exe.so: TestBoard programs/winemine/winemine.exe.so: TestFace programs/winemine/winemine.exe.so: TestMines programs/winemine/winemine.exe.so: UnpressBox programs/winemine/winemine.exe.so: UnpressBoxes programs/winhlp32/winhlp32.exe.so: HLPFILE_BPTreeSearch programs/winhlp32/winhlp32.exe.so: HLPFILE_Contents programs/winhlp32/winhlp32.exe.so: HLPFILE_HalfPointsToTwips programs/winhlp32/winhlp32.exe.so: MACRO_AddAccelerator programs/winhlp32/winhlp32.exe.so: MACRO_ALink programs/winhlp32/winhlp32.exe.so: MACRO_AppendItem programs/winhlp32/winhlp32.exe.so: MACRO_Back programs/winhlp32/winhlp32.exe.so: MACRO_BackFlush programs/winhlp32/winhlp32.exe.so: MACRO_BookmarkMore programs/winhlp32/winhlp32.exe.so: MACRO_BrowseButtons programs/winhlp32/winhlp32.exe.so: MACRO_ChangeButtonBinding programs/winhlp32/winhlp32.exe.so: MACRO_ChangeEnable programs/winhlp32/winhlp32.exe.so: MACRO_ChangeItemBinding programs/winhlp32/winhlp32.exe.so: MACRO_CheckItem programs/winhlp32/winhlp32.exe.so: MACRO_CloseSecondarys programs/winhlp32/winhlp32.exe.so: MACRO_CloseWindow programs/winhlp32/winhlp32.exe.so: MACRO_Compare programs/winhlp32/winhlp32.exe.so: MACRO_Contents programs/winhlp32/winhlp32.exe.so: MACRO_ControlPanel programs/winhlp32/winhlp32.exe.so: MACRO_CopyTopic programs/winhlp32/winhlp32.exe.so: MACRO_DeleteItem programs/winhlp32/winhlp32.exe.so: MACRO_DeleteMark programs/winhlp32/winhlp32.exe.so: MACRO_DestroyButton programs/winhlp32/winhlp32.exe.so: MACRO_DisableItem programs/winhlp32/winhlp32.exe.so: MACRO_EnableButton programs/winhlp32/winhlp32.exe.so: MACRO_EnableItem programs/winhlp32/winhlp32.exe.so: MACRO_EndMPrint programs/winhlp32/winhlp32.exe.so: MACRO_ExecFile programs/winhlp32/winhlp32.exe.so: MACRO_ExecProgram programs/winhlp32/winhlp32.exe.so: MACRO_ExtAbleItem programs/winhlp32/winhlp32.exe.so: MACRO_ExtInsertItem programs/winhlp32/winhlp32.exe.so: MACRO_ExtInsertMenu programs/winhlp32/winhlp32.exe.so: MACRO_FileExist programs/winhlp32/winhlp32.exe.so: MACRO_Find programs/winhlp32/winhlp32.exe.so: MACRO_Finder programs/winhlp32/winhlp32.exe.so: MACRO_FloatingMenu programs/winhlp32/winhlp32.exe.so: MACRO_Flush programs/winhlp32/winhlp32.exe.so: MACRO_FocusWindow programs/winhlp32/winhlp32.exe.so: MACRO_Generate programs/winhlp32/winhlp32.exe.so: MACRO_GotoMark programs/winhlp32/winhlp32.exe.so: MACRO_IfThen programs/winhlp32/winhlp32.exe.so: MACRO_IfThenElse programs/winhlp32/winhlp32.exe.so: MACRO_InitMPrint programs/winhlp32/winhlp32.exe.so: MACRO_InsertItem programs/winhlp32/winhlp32.exe.so: MACRO_InsertMenu programs/winhlp32/winhlp32.exe.so: MACRO_IsBook programs/winhlp32/winhlp32.exe.so: MACRO_IsMark programs/winhlp32/winhlp32.exe.so: MACRO_IsNotMark programs/winhlp32/winhlp32.exe.so: MACRO_JumpHelpOn programs/winhlp32/winhlp32.exe.so: MACRO_JumpID programs/winhlp32/winhlp32.exe.so: MACRO_JumpKeyword programs/winhlp32/winhlp32.exe.so: MACRO_KLink programs/winhlp32/winhlp32.exe.so: MACRO_Menu programs/winhlp32/winhlp32.exe.so: MACRO_MPrintHash programs/winhlp32/winhlp32.exe.so: MACRO_MPrintID programs/winhlp32/winhlp32.exe.so: MACRO_Next programs/winhlp32/winhlp32.exe.so: MACRO_NoShow programs/winhlp32/winhlp32.exe.so: MACRO_PopupHash programs/winhlp32/winhlp32.exe.so: MACRO_PopupId programs/winhlp32/winhlp32.exe.so: MACRO_PositionWindow programs/winhlp32/winhlp32.exe.so: MACRO_Prev programs/winhlp32/winhlp32.exe.so: MACRO_RegisterRoutine programs/winhlp32/winhlp32.exe.so: MACRO_RemoveAccelerator programs/winhlp32/winhlp32.exe.so: MACRO_ResetMenu programs/winhlp32/winhlp32.exe.so: MACRO_SaveMark programs/winhlp32/winhlp32.exe.so: MACRO_Search programs/winhlp32/winhlp32.exe.so: MACRO_SetHelpOnFile programs/winhlp32/winhlp32.exe.so: MACRO_SetPopupColor programs/winhlp32/winhlp32.exe.so: MACRO_ShellExecute programs/winhlp32/winhlp32.exe.so: MACRO_ShortCut programs/winhlp32/winhlp32.exe.so: MACRO_TCard programs/winhlp32/winhlp32.exe.so: MACRO_Test programs/winhlp32/winhlp32.exe.so: MACRO_TestALink programs/winhlp32/winhlp32.exe.so: MACRO_TestKLink programs/winhlp32/winhlp32.exe.so: MACRO_UncheckItem programs/winhlp32/winhlp32.exe.so: MACRO_UpdateWindow programs/winhlp32/winhlp32.exe.so: WINHELP_IndexDlgProc programs/winhlp32/winhlp32.exe.so: WINHELP_MessageBoxIDS_s programs/winhlp32/winhlp32.exe.so: WINHELP_SearchDlgProc programs/winhlp32/winhlp32.exe.so: yyalloc programs/winhlp32/winhlp32.exe.so: yy_create_buffer programs/winhlp32/winhlp32.exe.so: yy_delete_buffer programs/winhlp32/winhlp32.exe.so: yy_flush_buffer programs/winhlp32/winhlp32.exe.so: yyfree programs/winhlp32/winhlp32.exe.so: yyget_debug programs/winhlp32/winhlp32.exe.so: yyget_in programs/winhlp32/winhlp32.exe.so: yyget_leng programs/winhlp32/winhlp32.exe.so: yyget_lineno programs/winhlp32/winhlp32.exe.so: yyget_out programs/winhlp32/winhlp32.exe.so: yyget_text programs/winhlp32/winhlp32.exe.so: yylex programs/winhlp32/winhlp32.exe.so: yylex_destroy programs/winhlp32/winhlp32.exe.so: yypop_buffer_state programs/winhlp32/winhlp32.exe.so: yypush_buffer_state programs/winhlp32/winhlp32.exe.so: yyrealloc programs/winhlp32/winhlp32.exe.so: yyrestart programs/winhlp32/winhlp32.exe.so: yy_scan_buffer programs/winhlp32/winhlp32.exe.so: yy_scan_bytes programs/winhlp32/winhlp32.exe.so: yy_scan_string programs/winhlp32/winhlp32.exe.so: yyset_debug programs/winhlp32/winhlp32.exe.so: yyset_in programs/winhlp32/winhlp32.exe.so: yyset_lineno programs/winhlp32/winhlp32.exe.so: yyset_out programs/winhlp32/winhlp32.exe.so: yy_switch_to_buffer programs/winhlp32/winhlp32.exe.so: yywrap
Hi Francois,
For 1) Why not adding a keyword to mark these functions. Something like WINAPI which resolve to nothing but that can be tracked by your script.
I would add another item for more object oriented stuff. Some default implentations can be written but not always used. This is sort of templates. This is used in quartz for example.
Christian
Francois Gouget a écrit :
I have attached a script that identifies functions that should be made static (among other things). There are approximately 450 of them, there should be pretty efw false positives, and I will look into them eventually. But if someone beats me to it I sure won't complain <g>.
So if you do try to tackle them you are likely to find that they fall into one of the following categories:
Unused debug functions. For instance for dumping the contents of a structure to stderr. Although these are unused we probably want to keep them. Let me know about these and I will put them in an exception list.
Functions that should be exported by a spec file It happens. Sometimes the developer implementing a function just forgets to add it to the spec file!
Generated functions This typically happens with widl: it generates a bunch of functions for the client / server and proxy cases, but these functions may be unused. I have special code to not warn about these, but there may be other cases. For instance in the list below you will find a number of yy*() functions generated by lex. Either we can tell lex to make them static or to not generate them, or I should make another special case. If you find some of these, let me know.
Assembly functions I believe there should not be any of these in the list below. So if you find one let me know.
Functions declared in a private header file but implemented and used from a single C file. I'm in favor of removing these functions from the private header and making them static.
All the others should be pretty clear-cut.
dlls/advapi32/advapi32.dll.so: CRYPT_DESkey8to7 dlls/browseui/tests/browseui_test.exe.so: strdup_AtoW dlls/browseui/tests/browseui_test.exe.so: TestACL_ACList_AddRef dlls/browseui/tests/browseui_test.exe.so: TestACL_ACList_QueryInterface dlls/browseui/tests/browseui_test.exe.so: TestACL_ACList_Release dlls/browseui/tests/browseui_test.exe.so: TestACL_AddRef dlls/browseui/tests/browseui_test.exe.so: TestACL_Clone dlls/browseui/tests/browseui_test.exe.so: TestACL_Expand dlls/browseui/tests/browseui_test.exe.so: TestACL_Next dlls/browseui/tests/browseui_test.exe.so: TestACL_QueryInterface dlls/browseui/tests/browseui_test.exe.so: TestACL_Release dlls/browseui/tests/browseui_test.exe.so: TestACL_Reset dlls/browseui/tests/browseui_test.exe.so: TestACL_Skip dlls/cabinet/cabinet.dll.so: checksum dlls/cabinet/cabinet.dll.so: make_decode_table dlls/cabinet/cabinet.dll.so: QTMupdatemodel dlls/comctl32/tests/comctl32_test.exe.so: flush_sequence dlls/comdlg32/comdlg32.dll.so: CC_WMCommand dlls/crypt32/crypt32.dll.so: ContextList_Empty dlls/dbghelp/dbghelp.dll.so: hash_table_find dlls/dbghelp/dbghelp.dll.so: hash_table_hash dlls/dbghelp/dbghelp.dll.so: module_find_by_name dlls/dbghelp/dbghelp.dll.so: module_get_container dlls/dinput/dinput.dll.so: DIEnumDevicesCallbackAtoW dlls/dmime/dmime.dll.so: DMUSIC_CreateDirectMusicobjImpl dlls/dmime/dmime.dll.so: DMUSIC_CreateDirectMusicPatternTrackImpl dlls/dmusic/dmusic.dll.so: DMUSIC_CreateDirectMusicBufferImpl dlls/dmusic/dmusic.dll.so: DMUSIC_CreateDirectMusicDownloadedInstrumentImpl dlls/dmusic/dmusic.dll.so: DMUSIC_CreateDirectMusicDownloadImpl dlls/dnsapi/dnsapi.dll.so: dns_ns_name_pton dlls/dplayx/dplayx.dll.so: cbDeleteGroupsElem dlls/dplayx/dplayx.dll.so: cbDeletePlayerElem dlls/dplayx/dplayx.dll.so: DPLAYX_DestroyLobbyApplication dlls/dplayx/dplayx.dll.so: DPLAYX_SetLocalSession dlls/dplayx/dplayx.dll.so: NS_GetOtherMagic dlls/dplayx/dplayx.dll.so: NS_SetRemoteComputerAsNameServer dlls/dsound/dsound.dll.so: DirectSoundCaptureDevice_AddRef dlls/fusion/fusion.dll.so: assembly_get_architecture dlls/fusion/fusion.dll.so: CompareAssemblyIdentity dlls/fusion/fusion.dll.so: GetAssemblyIdentityFromFile dlls/inetcomm/inetcomm.dll.so: InternetTransport_Read dlls/iphlpapi/iphlpapi.dll.so: getInterfaceEntryByIndex dlls/iphlpapi/iphlpapi.dll.so: getInterfacePhysicalByName dlls/itss/itss.dll.so: chm_enumerate dlls/jscript/jscript.dll.so: jsdisp_call dlls/jscript/jscript.dll.so: parser_parse dlls/mountmgr.sys/mountmgr.sys.so: DriverEntry dlls/msacm32/msacm32.dll.so: MSACM_UnregisterLocalDriver dlls/mshtml/mshtml.dll.so: HTMLElementCollection_Create dlls/msi/msi.dll.so: cond_parse dlls/msi/msi.dll.so: ControlEvent_UnSubscribeToEvent dlls/msi/msi.dll.so: db_get_raw_stream dlls/msi/msi.dll.so: encode_streamname dlls/msi/msi.dll.so: find_published_source dlls/msi/msi.dll.so: MSI_DatabaseExport dlls/msi/msi.dll.so: MSI_DatabaseImport dlls/msi/msi.dll.so: msi_dialog_register_class dlls/msi/msi.dll.so: MSI_EnableUIPreview dlls/msi/msi.dll.so: msi_id2stringA dlls/msi/msi.dll.so: msi_id2stringW dlls/msi/msi.dll.so: msi_load_media_info dlls/msi/msi.dll.so: MSI_PreviewDialogW dlls/msi/msi.dll.so: MSI_RecordDataSize dlls/msi/msi.dll.so: MSI_RecordSetStream dlls/msi/msi.dll.so: MSI_RecordSetStringA dlls/msi/msi.dll.so: MSIREG_OpenInstallerFeaturesKey dlls/msi/msi.dll.so: msi_strcmp dlls/msi/msi.dll.so: msi_string2idA dlls/msi/msi.dll.so: msi_ui_error dlls/msi/msi.dll.so: msi_version_dword_to_str dlls/msi/msi.dll.so: reduce_to_shortfilename dlls/msi/msi.dll.so: sql_parse dlls/msxml3/msxml3.dll.so: httprequest_Release dlls/msxml3/msxml3.dll.so: XMLElementCollection_create dlls/netapi32/netapi32.dll.so: NBNameCacheUpdateNBName dlls/ole32/ole32.dll.so: IMalloc16_Constructor dlls/qcap/qcap.dll.so: FreeMediaType dlls/qcap/qcap.dll.so: IPinImpl_QueryInternalConnections dlls/quartz/quartz.dll.so: MemInputPin_AddRef dlls/quartz/quartz.dll.so: MemInputPin_GetAllocator dlls/quartz/quartz.dll.so: MemInputPin_GetAllocatorRequirements dlls/quartz/quartz.dll.so: MemInputPin_NotifyAllocator dlls/quartz/quartz.dll.so: MemInputPin_QueryInterface dlls/quartz/quartz.dll.so: MemInputPin_Receive dlls/quartz/quartz.dll.so: MemInputPin_ReceiveCanBlock dlls/quartz/quartz.dll.so: MemInputPin_ReceiveMultiple dlls/quartz/quartz.dll.so: MemInputPin_Release dlls/quartz/quartz.dll.so: OutputPin_DeliverNewSegment dlls/riched20/riched20.dll.so: ME_ConcatString dlls/riched20/riched20.dll.so: ME_CopyToCF2W dlls/riched20/riched20.dll.so: ME_DestroyEditor dlls/riched20/riched20.dll.so: ME_DITypesEqual dlls/riched20/riched20.dll.so: ME_DrawParagraph dlls/riched20/riched20.dll.so: ME_FindItemFwdOrHere dlls/riched20/riched20.dll.so: ME_FindNextURLCandidate dlls/riched20/riched20.dll.so: ME_FindRowStart dlls/riched20/riched20.dll.so: ME_GetOptimalBuffer dlls/riched20/riched20.dll.so: ME_GetParaFormat dlls/riched20/riched20.dll.so: ME_GetYScrollVisible dlls/riched20/riched20.dll.so: ME_InvalidateFromOfs dlls/riched20/riched20.dll.so: ME_IsCandidateAnURL dlls/riched20/riched20.dll.so: ME_LinkNotify dlls/riched20/riched20.dll.so: ME_MakeEditor dlls/riched20/riched20.dll.so: ME_MakeStringB dlls/riched20/riched20.dll.so: ME_MarkForWrapping dlls/riched20/riched20.dll.so: ME_QueueInvalidateFromCursor dlls/riched20/riched20.dll.so: ME_Scroll dlls/riched20/riched20.dll.so: ME_SelectByType dlls/riched20/riched20.dll.so: ME_SetParaFormat dlls/riched20/riched20.dll.so: ME_ToCFAny dlls/riched20/riched20.dll.so: ME_UpdateLinkAttribute dlls/riched20/riched20.dll.so: ME_UpdateSelection dlls/riched20/riched20.dll.so: ME_UpdateSelectionLinkAttribute dlls/riched20/riched20.dll.so: REComboWndProc dlls/riched20/riched20.dll.so: REListWndProc dlls/riched20/riched20.dll.so: RTFExpandStyle dlls/riched20/riched20.dll.so: RTFGetClassCallback dlls/riched20/riched20.dll.so: RTFGetDestinationCallback dlls/riched20/riched20.dll.so: RTFGetInputName dlls/riched20/riched20.dll.so: RTFGetOutputName dlls/riched20/riched20.dll.so: RTFGetReadHook dlls/riched20/riched20.dll.so: RTFGetStyle dlls/riched20/riched20.dll.so: RTFHexToChar dlls/riched20/riched20.dll.so: RTFPeekToken dlls/riched20/riched20.dll.so: RTFSetClassCallback dlls/riched20/riched20.dll.so: RTFSetInputName dlls/riched20/riched20.dll.so: RTFSetOutputName dlls/riched20/riched20.dll.so: RTFSetToken dlls/riched20/riched20.dll.so: RTFUngetToken dlls/rpcrt4/rpcrt4.dll.so: NCA2RPC_STATUS dlls/rpcrt4/rpcrt4.dll.so: NdrByteCountPointerMemorySize dlls/rpcrt4/rpcrt4.dll.so: NdrRangeBufferSize dlls/rpcrt4/rpcrt4.dll.so: NdrRangeFree dlls/rpcrt4/rpcrt4.dll.so: NdrRangeMarshall dlls/rpcrt4/rpcrt4.dll.so: NdrRangeMemorySize dlls/rpcrt4/rpcrt4.dll.so: RPCRT4_receive_fragment dlls/rpcrt4/rpcrt4.dll.so: RPCRT4_SpawnConnection dlls/rpcrt4/rpcrt4.dll.so: RPCRT4_ValidateCommonHeader dlls/rsaenh/rsaenh.dll.so: alloc_handle_table dlls/rsaenh/rsaenh.dll.so: mp_2expt dlls/rsaenh/rsaenh.dll.so: mp_abs dlls/rsaenh/rsaenh.dll.so: mp_add_d dlls/rsaenh/rsaenh.dll.so: mp_clamp dlls/rsaenh/rsaenh.dll.so: mp_clear dlls/rsaenh/rsaenh.dll.so: mp_cmp_mag dlls/rsaenh/rsaenh.dll.so: mp_cnt_lsb dlls/rsaenh/rsaenh.dll.so: mp_div dlls/rsaenh/rsaenh.dll.so: mp_div_2 dlls/rsaenh/rsaenh.dll.so: mp_div_2d dlls/rsaenh/rsaenh.dll.so: mp_div_d dlls/rsaenh/rsaenh.dll.so: mp_dr_reduce dlls/rsaenh/rsaenh.dll.so: mp_dr_setup dlls/rsaenh/rsaenh.dll.so: mp_exch dlls/rsaenh/rsaenh.dll.so: mp_grow dlls/rsaenh/rsaenh.dll.so: mp_init dlls/rsaenh/rsaenh.dll.so: mp_init_size dlls/rsaenh/rsaenh.dll.so: mp_lshd dlls/rsaenh/rsaenh.dll.so: mp_mod_2d dlls/rsaenh/rsaenh.dll.so: mp_mod_d dlls/rsaenh/rsaenh.dll.so: mp_montgomery_calc_normalization dlls/rsaenh/rsaenh.dll.so: mp_montgomery_reduce dlls/rsaenh/rsaenh.dll.so: mp_montgomery_setup dlls/rsaenh/rsaenh.dll.so: mp_mul_2 dlls/rsaenh/rsaenh.dll.so: mp_mul_2d dlls/rsaenh/rsaenh.dll.so: mp_mul_d dlls/rsaenh/rsaenh.dll.so: mp_prime_is_divisible dlls/rsaenh/rsaenh.dll.so: mp_prime_is_prime dlls/rsaenh/rsaenh.dll.so: mp_prime_miller_rabin dlls/rsaenh/rsaenh.dll.so: mp_reduce dlls/rsaenh/rsaenh.dll.so: mp_reduce_2k dlls/rsaenh/rsaenh.dll.so: mp_reduce_2k_setup dlls/rsaenh/rsaenh.dll.so: mp_reduce_setup dlls/rsaenh/rsaenh.dll.so: mp_rshd dlls/rsaenh/rsaenh.dll.so: mp_set dlls/rsaenh/rsaenh.dll.so: mp_signed_bin_size dlls/rsaenh/rsaenh.dll.so: mp_sqr dlls/rsaenh/rsaenh.dll.so: mp_sqrmod dlls/rsaenh/rsaenh.dll.so: mp_zero dlls/rsaenh/rsaenh.dll.so: release_handle_table dlls/sane.ds/sane.ds.so: SANE_AutomaticCaptureDirectory dlls/sane.ds/sane.ds.so: SANE_FileSystemCopy dlls/sane.ds/sane.ds.so: SANE_PendingXfersStopFeeder dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2Get dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2GetDefault dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2Reset dlls/sane.ds/sane.ds.so: SANE_SetupFileXfer2Set dlls/secur32/secur32.dll.so: SECUR32_initNegotiateSP dlls/secur32/secur32.dll.so: SECUR32_strdupW dlls/setupapi/setupapi.dll.so: PARSER_string_substW dlls/setupapi/setupapi.dll.so: VcpEnumFiles dlls/setupapi/setupapi.dll.so: VcpFlush16 dlls/setupapi/setupapi.dll.so: vsmStringCompare16 dlls/setupapi/setupapi.dll.so: vsmStringFind16 dlls/shell32/shell32.dll.so: HCR_GetDefaultIconFromGUIDW dlls/shell32/shell32.dll.so: ILGetDisplayNameExA dlls/shell32/shell32.dll.so: _ILGetSTextPointer dlls/shell32/shell32.dll.so: _ILGetTextPointerW dlls/shell32/shell32.dll.so: RenderFILECONTENTS dlls/shell32/shell32.dll.so: RenderFILEDESCRIPTOR dlls/shell32/shell32.dll.so: RenderPREFEREDDROPEFFECT dlls/shell32/shell32.dll.so: RenderSHELLIDLISTOFFSET dlls/shell32/shell32.dll.so: SHILCreateFromPathA dlls/shell32/shell32.dll.so: TRASH_DisposeElement dlls/shell32/shell32.dll.so: XDG_GetPath dlls/user32/user32.dll.so: EditWndProcW dlls/user32/user32.dll.so: LookupIconIdFromDirectory16 dlls/uxtheme/uxtheme.dll.so: UXINI_ResetINI dlls/w32skrnl/w32skrnl.dll.so: _GetThunkBuff dlls/winealsa.drv/winealsa.drv.so: ALSA_PeekRingMessage dlls/winealsa.drv/winealsa.drv.so: wodSetVolume dlls/winedos/winedos.dll.so: DOSDEV_Console dlls/winedos/winedos.dll.so: DOSDEV_FindCharDevice dlls/winedos/winedos.dll.so: DOSDEV_IoctlRead dlls/winedos/winedos.dll.so: DOSDEV_IoctlWrite dlls/winedos/winedos.dll.so: DOSDEV_Peek dlls/winedos/winedos.dll.so: DOSDEV_Read dlls/winedos/winedos.dll.so: DOSDEV_Write dlls/winedos/winedos.dll.so: DOSVM_AllocCodeUMB dlls/winedos/winedos.dll.so: DOSVM_AllocUMB dlls/winedos/winedos.dll.so: DPMI_FreeInternalRMCB dlls/winedos/winedos.dll.so: VGA_SetQuadPalette dlls/winedos/winedos.dll.so: VGA_SetTextAttribute dlls/wineps.drv/wineps.drv.so: PSDRV_CmpColor dlls/wineps.drv/wineps.drv.so: PSDRV_WriteArrayGet dlls/wineps.drv/wineps.drv.so: PSDRV_WriteInitClip dlls/wineps.drv/wineps.drv.so: PSDRV_WriteRRectangle dlls/winex11.drv/winex11.drv.so: X11DRV_get_client_window dlls/winex11.drv/winex11.drv.so: X11DRV_SetupGCForPen dlls/winex11.drv/winex11.drv.so: X11DRV_window_to_X_rect dlls/winex11.drv/winex11.drv.so: X11DRV_XF86VM_SetExclusiveMode dlls/winex11.drv/winex11.drv.so: X11DRV_XRandR_Cleanup dlls/winhttp/winhttp.dll.so: netconn_set_timeout dlls/wininet/wininet.dll.so: HTTP_FinishedReading dlls/wininet/wininet.dll.so: HTTP_GetHeader dlls/wininet/wininet.dll.so: HTTP_HttpOpenRequestW dlls/wininet/wininet.dll.so: HTTP_HttpSendRequestW dlls/winmm/winmm.dll.so: MCI_DefYieldProc dlls/winmm/winmm.dll.so: MCI_GetDriverFromString dlls/winmm/winmm.dll.so: MCI_SendCommandFrom16 dlls/winmm/winmm.dll.so: MCI_SendCommandFrom32 dlls/winmm/winmm.dll.so: MCI_WriteString dlls/wintrust/wintrust.dll.so: CRYPT_AsnEncodeInt dlls/wintrust/wintrust.dll.so: WINTRUST_ReAlloc dlls/wnaspi32/wnaspi32.dll.so: ASPI_SendASPICommand dlls/wnaspi32/wnaspi32.dll.so: SCSI_GetDeviceName dlls/wuapi/wuapi.dll.so: AutomaticUpdates_create programs/cmd/cmd.exe.so: handleExpansion programs/cmd/cmd.exe.so: WCMD_addCommand programs/cmd/cmd.exe.so: WCMD_ask_confirm programs/cmd/cmd.exe.so: WCMD_dir_sort programs/cmd/cmd.exe.so: WCMD_filesize64 programs/cmd/cmd.exe.so: WCMD_opt_s_strip_quotes programs/cmd/cmd.exe.so: WCMD_parse programs/cmd/cmd.exe.so: WCMD_show_prompt programs/cmd/cmd.exe.so: WCMD_strrev programs/cmd/cmd.exe.so: WCMD_strtrim_trailing_spaces programs/oleview/oleview.exe.so: AddToStrW programs/oleview/oleview.exe.so: AddToTLDataStrW programs/oleview/oleview.exe.so: AddToTLDataStrWithTabsW programs/oleview/oleview.exe.so: CreateInstOnProc programs/oleview/oleview.exe.so: DetailsProc programs/oleview/oleview.exe.so: InterfaceViewerProc programs/oleview/oleview.exe.so: PaneProc programs/oleview/oleview.exe.so: SysConfProc programs/oleview/oleview.exe.so: TreeProc programs/oleview/oleview.exe.so: TypeLibProc programs/oleview/oleview.exe.so: WndProc programs/progman/progman.exe.so: DIALOG_Symbol programs/regedit/regedit.exe.so: GetMultiByteStringN programs/regedit/regedit.exe.so: GetRootKeyName programs/regedit/regedit.exe.so: GetWideStringN programs/regedit/regedit.exe.so: HexEdit_Unregister programs/regedit/regedit.exe.so: processRegLinesA programs/regedit/regedit.exe.so: processRegLinesW programs/taskmgr/taskmgr.exe.so: Draw3dRect programs/taskmgr/taskmgr.exe.so: Draw3dRect2 programs/taskmgr/taskmgr.exe.so: FillSolidRect2 programs/taskmgr/taskmgr.exe.so: GraphCtrl_DrawPoint programs/taskmgr/taskmgr.exe.so: GraphCtrl_InvalidateCtrl programs/taskmgr/taskmgr.exe.so: GraphCtrl_Paint programs/taskmgr/taskmgr.exe.so: GraphCtrl_Resize programs/taskmgr/taskmgr.exe.so: TrayIcon_GetProcessorUsageIcon programs/taskmgr/taskmgr.exe.so: UpdateApplicationListControlViewSetting programs/view/view.exe.so: FileIsPlaceable programs/view/view.exe.so: GetPlaceableMetaFile programs/winecfg/winecfg.exe.so: enumerate_valuesW programs/wineconsole/wineconsole.exe.so: WCUSER_AreFontsEqual programs/wineconsole/wineconsole.exe.so: WINECON_FetchCells programs/wineconsole/wineconsole.exe.so: WINECON_GetHistoryMode programs/wineconsole/wineconsole.exe.so: WINECON_SetHistoryMode programs/wineconsole/wineconsole.exe.so: WINECON_SetHistorySize programs/winedbg/winedbg.exe.so: be_cpu_build_addr programs/winedbg/winedbg.exe.so: be_cpu_linearize programs/winedbg/winedbg.exe.so: dbg_alloc programs/winedbg/winedbg.exe.so: dbg__create_buffer programs/winedbg/winedbg.exe.so: dbg__delete_buffer programs/winedbg/winedbg.exe.so: dbg__flush_buffer programs/winedbg/winedbg.exe.so: dbg_free programs/winedbg/winedbg.exe.so: dbg_get_debug programs/winedbg/winedbg.exe.so: dbg_get_in programs/winedbg/winedbg.exe.so: dbg_get_leng programs/winedbg/winedbg.exe.so: dbg_get_lineno programs/winedbg/winedbg.exe.so: dbg_get_out programs/winedbg/winedbg.exe.so: dbg_get_text programs/winedbg/winedbg.exe.so: dbg_lex_destroy programs/winedbg/winedbg.exe.so: dbg_outputA programs/winedbg/winedbg.exe.so: dbg_parse programs/winedbg/winedbg.exe.so: dbg_pop_buffer_state programs/winedbg/winedbg.exe.so: dbg_push_buffer_state programs/winedbg/winedbg.exe.so: dbg_realloc programs/winedbg/winedbg.exe.so: dbg_restart programs/winedbg/winedbg.exe.so: dbg__scan_buffer programs/winedbg/winedbg.exe.so: dbg__scan_bytes programs/winedbg/winedbg.exe.so: dbg__scan_string programs/winedbg/winedbg.exe.so: dbg_set_debug programs/winedbg/winedbg.exe.so: dbg_set_in programs/winedbg/winedbg.exe.so: dbg_set_lineno programs/winedbg/winedbg.exe.so: dbg_set_out programs/winedbg/winedbg.exe.so: dbg__switch_to_buffer programs/winedbg/winedbg.exe.so: dbg_wrap programs/winedbg/winedbg.exe.so: expr_alloc_uconstant programs/winedbg/winedbg.exe.so: lexeme_alloc programs/winedbg/winedbg.exe.so: parser programs/winedbg/winedbg.exe.so: validate_file programs/winemine/winemine.exe.so: AboutDlgProc programs/winemine/winemine.exe.so: AddFlag programs/winemine/winemine.exe.so: CompleteBox programs/winemine/winemine.exe.so: CompleteBoxes programs/winemine/winemine.exe.so: CreateBoard programs/winemine/winemine.exe.so: DestroyBoard programs/winemine/winemine.exe.so: DrawBoard programs/winemine/winemine.exe.so: DrawFace programs/winemine/winemine.exe.so: DrawLeds programs/winemine/winemine.exe.so: DrawMine programs/winemine/winemine.exe.so: DrawMines programs/winemine/winemine.exe.so: InitBoard programs/winemine/winemine.exe.so: LoadBoard programs/winemine/winemine.exe.so: MainProc programs/winemine/winemine.exe.so: PlaceMines programs/winemine/winemine.exe.so: PressBox programs/winemine/winemine.exe.so: PressBoxes programs/winemine/winemine.exe.so: SaveBoard programs/winemine/winemine.exe.so: SetDifficulty programs/winemine/winemine.exe.so: TestBoard programs/winemine/winemine.exe.so: TestFace programs/winemine/winemine.exe.so: TestMines programs/winemine/winemine.exe.so: UnpressBox programs/winemine/winemine.exe.so: UnpressBoxes programs/winhlp32/winhlp32.exe.so: HLPFILE_BPTreeSearch programs/winhlp32/winhlp32.exe.so: HLPFILE_Contents programs/winhlp32/winhlp32.exe.so: HLPFILE_HalfPointsToTwips programs/winhlp32/winhlp32.exe.so: MACRO_AddAccelerator programs/winhlp32/winhlp32.exe.so: MACRO_ALink programs/winhlp32/winhlp32.exe.so: MACRO_AppendItem programs/winhlp32/winhlp32.exe.so: MACRO_Back programs/winhlp32/winhlp32.exe.so: MACRO_BackFlush programs/winhlp32/winhlp32.exe.so: MACRO_BookmarkMore programs/winhlp32/winhlp32.exe.so: MACRO_BrowseButtons programs/winhlp32/winhlp32.exe.so: MACRO_ChangeButtonBinding programs/winhlp32/winhlp32.exe.so: MACRO_ChangeEnable programs/winhlp32/winhlp32.exe.so: MACRO_ChangeItemBinding programs/winhlp32/winhlp32.exe.so: MACRO_CheckItem programs/winhlp32/winhlp32.exe.so: MACRO_CloseSecondarys programs/winhlp32/winhlp32.exe.so: MACRO_CloseWindow programs/winhlp32/winhlp32.exe.so: MACRO_Compare programs/winhlp32/winhlp32.exe.so: MACRO_Contents programs/winhlp32/winhlp32.exe.so: MACRO_ControlPanel programs/winhlp32/winhlp32.exe.so: MACRO_CopyTopic programs/winhlp32/winhlp32.exe.so: MACRO_DeleteItem programs/winhlp32/winhlp32.exe.so: MACRO_DeleteMark programs/winhlp32/winhlp32.exe.so: MACRO_DestroyButton programs/winhlp32/winhlp32.exe.so: MACRO_DisableItem programs/winhlp32/winhlp32.exe.so: MACRO_EnableButton programs/winhlp32/winhlp32.exe.so: MACRO_EnableItem programs/winhlp32/winhlp32.exe.so: MACRO_EndMPrint programs/winhlp32/winhlp32.exe.so: MACRO_ExecFile programs/winhlp32/winhlp32.exe.so: MACRO_ExecProgram programs/winhlp32/winhlp32.exe.so: MACRO_ExtAbleItem programs/winhlp32/winhlp32.exe.so: MACRO_ExtInsertItem programs/winhlp32/winhlp32.exe.so: MACRO_ExtInsertMenu programs/winhlp32/winhlp32.exe.so: MACRO_FileExist programs/winhlp32/winhlp32.exe.so: MACRO_Find programs/winhlp32/winhlp32.exe.so: MACRO_Finder programs/winhlp32/winhlp32.exe.so: MACRO_FloatingMenu programs/winhlp32/winhlp32.exe.so: MACRO_Flush programs/winhlp32/winhlp32.exe.so: MACRO_FocusWindow programs/winhlp32/winhlp32.exe.so: MACRO_Generate programs/winhlp32/winhlp32.exe.so: MACRO_GotoMark programs/winhlp32/winhlp32.exe.so: MACRO_IfThen programs/winhlp32/winhlp32.exe.so: MACRO_IfThenElse programs/winhlp32/winhlp32.exe.so: MACRO_InitMPrint programs/winhlp32/winhlp32.exe.so: MACRO_InsertItem programs/winhlp32/winhlp32.exe.so: MACRO_InsertMenu programs/winhlp32/winhlp32.exe.so: MACRO_IsBook programs/winhlp32/winhlp32.exe.so: MACRO_IsMark programs/winhlp32/winhlp32.exe.so: MACRO_IsNotMark programs/winhlp32/winhlp32.exe.so: MACRO_JumpHelpOn programs/winhlp32/winhlp32.exe.so: MACRO_JumpID programs/winhlp32/winhlp32.exe.so: MACRO_JumpKeyword programs/winhlp32/winhlp32.exe.so: MACRO_KLink programs/winhlp32/winhlp32.exe.so: MACRO_Menu programs/winhlp32/winhlp32.exe.so: MACRO_MPrintHash programs/winhlp32/winhlp32.exe.so: MACRO_MPrintID programs/winhlp32/winhlp32.exe.so: MACRO_Next programs/winhlp32/winhlp32.exe.so: MACRO_NoShow programs/winhlp32/winhlp32.exe.so: MACRO_PopupHash programs/winhlp32/winhlp32.exe.so: MACRO_PopupId programs/winhlp32/winhlp32.exe.so: MACRO_PositionWindow programs/winhlp32/winhlp32.exe.so: MACRO_Prev programs/winhlp32/winhlp32.exe.so: MACRO_RegisterRoutine programs/winhlp32/winhlp32.exe.so: MACRO_RemoveAccelerator programs/winhlp32/winhlp32.exe.so: MACRO_ResetMenu programs/winhlp32/winhlp32.exe.so: MACRO_SaveMark programs/winhlp32/winhlp32.exe.so: MACRO_Search programs/winhlp32/winhlp32.exe.so: MACRO_SetHelpOnFile programs/winhlp32/winhlp32.exe.so: MACRO_SetPopupColor programs/winhlp32/winhlp32.exe.so: MACRO_ShellExecute programs/winhlp32/winhlp32.exe.so: MACRO_ShortCut programs/winhlp32/winhlp32.exe.so: MACRO_TCard programs/winhlp32/winhlp32.exe.so: MACRO_Test programs/winhlp32/winhlp32.exe.so: MACRO_TestALink programs/winhlp32/winhlp32.exe.so: MACRO_TestKLink programs/winhlp32/winhlp32.exe.so: MACRO_UncheckItem programs/winhlp32/winhlp32.exe.so: MACRO_UpdateWindow programs/winhlp32/winhlp32.exe.so: WINHELP_IndexDlgProc programs/winhlp32/winhlp32.exe.so: WINHELP_MessageBoxIDS_s programs/winhlp32/winhlp32.exe.so: WINHELP_SearchDlgProc programs/winhlp32/winhlp32.exe.so: yyalloc programs/winhlp32/winhlp32.exe.so: yy_create_buffer programs/winhlp32/winhlp32.exe.so: yy_delete_buffer programs/winhlp32/winhlp32.exe.so: yy_flush_buffer programs/winhlp32/winhlp32.exe.so: yyfree programs/winhlp32/winhlp32.exe.so: yyget_debug programs/winhlp32/winhlp32.exe.so: yyget_in programs/winhlp32/winhlp32.exe.so: yyget_leng programs/winhlp32/winhlp32.exe.so: yyget_lineno programs/winhlp32/winhlp32.exe.so: yyget_out programs/winhlp32/winhlp32.exe.so: yyget_text programs/winhlp32/winhlp32.exe.so: yylex programs/winhlp32/winhlp32.exe.so: yylex_destroy programs/winhlp32/winhlp32.exe.so: yypop_buffer_state programs/winhlp32/winhlp32.exe.so: yypush_buffer_state programs/winhlp32/winhlp32.exe.so: yyrealloc programs/winhlp32/winhlp32.exe.so: yyrestart programs/winhlp32/winhlp32.exe.so: yy_scan_buffer programs/winhlp32/winhlp32.exe.so: yy_scan_bytes programs/winhlp32/winhlp32.exe.so: yy_scan_string programs/winhlp32/winhlp32.exe.so: yyset_debug programs/winhlp32/winhlp32.exe.so: yyset_in programs/winhlp32/winhlp32.exe.so: yyset_lineno programs/winhlp32/winhlp32.exe.so: yyset_out programs/winhlp32/winhlp32.exe.so: yy_switch_to_buffer programs/winhlp32/winhlp32.exe.so: yywrap
On Thu, 18 Dec 2008, Christian Costa wrote: [...]
For 1) Why not adding a keyword to mark these functions. Something like WINAPI which resolve to nothing but that can be tracked by your script.
We could potentially go this way if I merge these checks with winapi_check one day. But for now I prefer not to touch Wine's code. Besides there's really only about a handful of these.
I would add another item for more object oriented stuff. Some default implentations can be written but not always used. This is sort of templates. This is used in quartz for example.
Do you have a specific example of this?
Francois Gouget a écrit :
On Thu, 18 Dec 2008, Christian Costa wrote: [...]
For 1) Why not adding a keyword to mark these functions. Something like WINAPI which resolve to nothing but that can be tracked by your script.
We could potentially go this way if I merge these checks with winapi_check one day. But for now I prefer not to touch Wine's code. Besides there's really only about a handful of these.
I would add another item for more object oriented stuff. Some default implentations can be written but not always used. This is sort of templates. This is used in quartz for example.
Do you have a specific example of this?
If you have a class A (with methods implemented in file 1) that inherits from another class B (methods in file B). The class A may overrides some methods of B which may become unused if B is never instanciated and B methods not reused. They wil be tracked by your script then. We could make these functions static or worst remove then but from object programming pov is not good. Implement objects or interfaces in C is a little messy. Haven't something more consistent would be more convenient I think. That would we good if we could treat a class as a whole rather that just independants C functions.
That said, in quartz only pins use that currently (maybe more base classes could be written like what's done in Direct Show base classes (through strmbase.lib)). And if we move that code to a separate static lib (strmbase like in DirectShow), functions will be exported and the problem will disappear. Maybe it isn't worth the trouble.
Christian
On Sat, 20 Dec 2008, Christian Costa wrote: [...]
If you have a class A (with methods implemented in file 1) that inherits from another class B (methods in file B). The class A may overrides some methods of B which may become unused if B is never instanciated and B methods not reused. They will be tracked by your script then. We could make these functions static or worst remove then but from object programming pov is not good.
I don't see any reason not to make the methods of B static, whether class A exists or not. Note that 'static' does not prevent a function from being called from another object file if you give a pointer to them to that other file (as you do with the virtual table).
Also the compiler will not complain that these functions are unused because they are indeed used: you take their address.
Francois Gouget a écrit :
On Sat, 20 Dec 2008, Christian Costa wrote: [...]
If you have a class A (with methods implemented in file 1) that inherits from another class B (methods in file B). The class A may overrides some methods of B which may become unused if B is never instanciated and B methods not reused. They will be tracked by your script then. We could make these functions static or worst remove then but from object programming pov is not good.
I don't see any reason not to make the methods of B static, whether class A exists or not. Note that 'static' does not prevent a function from being called from another object file if you give a pointer to them to that other file (as you do with the virtual table).
Also the compiler will not complain that these functions are unused because they are indeed used: you take their address.
Yes. That's right we can pick the function address from a vtable but in that case we cannot build another one statically as we use to i.e :
const IPinVtbl MyInputPin_Vtbl = { InputPin_Vtbl.QueryInterface, <= not a constant MyInputPin_AddRef, ... }
The compiler will complain this is not a constant. We could never build a vtable statically except for the top base class. And how could we build a vtable dynamically from another one which is also build dynamically ? I guess, we need to rely on constructor of the parent class which will call in turn his own parent and so on. This is a big change. Maybe it's off topic, but msvcirt exports methods as well as vtables. I don't know how all of this works !
On Thursday 18 December 2008 10:09:02 Francois Gouget wrote:
dlls/secur32/secur32.dll.so: SECUR32_initNegotiateSP
This function would (and at some point did) register the Negotiate security provider. It's not called right now because the provider is not implemented and registering it broke some applications. The better solution here would be to completely remove negotiate.c and readd it once it's implemented.
dlls/secur32/secur32.dll.so: SECUR32_strdupW
This should be used by functions like e.g. QueryContextAttributesW. It's just that we cheat and not implement the parts of that function that need to allocate strings yet.
Cheers, Kai
On Sun, 21 Dec 2008, Kai Blin wrote:
On Thursday 18 December 2008 10:09:02 Francois Gouget wrote:
dlls/secur32/secur32.dll.so: SECUR32_initNegotiateSP
This function would (and at some point did) register the Negotiate security provider. It's not called right now because the provider is not implemented and registering it broke some applications.
I see it's called in secur32.c (in an #if 0) and implemented in negotiate.c. So I have added it to the ignore list so my script does not complain about it. As long as when all is finished we're sure that it will be referenced in more than one file, then it's ok to ignore it for now.
dlls/secur32/secur32.dll.so: SECUR32_strdupW
This should be used by functions like e.g. QueryContextAttributesW. It's just that we cheat and not implement the parts of that function that need to allocate strings yet.
Same thing.
Francois Gouget wrote:
I have attached a script that identifies functions that should be made static (among other things). There are approximately 450 of them, there should be pretty efw false positives, and I will look into them eventually. But if someone beats me to it I sure won't complain <g>.
Hi Francois,
The dlls/advapi32/svcctl_c.c: svcctl_*() functions are peculiar, too. They look like they need to be exported in some manner.
On Sun, 21 Dec 2008, Andrew Talbot wrote: [...]
The dlls/advapi32/svcctl_c.c: svcctl_*() functions are peculiar, too. They look like they need to be exported in some manner.
My script already detects that svcctl_c.c was generated from svcctl.idl and thus won't complain about any of the functions it defines:
* for _c.c and _s.c files all functions get a free pass (see $idl_cs in the script) * for _p.c filesm only the _Proxy and _Stub functions get a free pass (see $idl_proxt in the script)
Thanks for the help with this task. With the last round of patches we are now down to about 280 warnings so there's definite progress. Here's the updated list:
dlls/cabinet/fdi.o: make_decode_table should be made static dlls/cabinet/fdi.o: QTMupdatemodel should be made static dlls/comctl32/tests/msg.o: flush_sequence should be made static dlls/d3dxof/parsing.o: parse_template_option_info should be made static dlls/dbghelp/storage.o: hash_table_find should be made static dlls/dmime/patterntrack.o: DMUSIC_CreateDirectMusicPatternTrackImpl should be made static dlls/dmime/tool.o: DMUSIC_CreateDirectMusicobjImpl should be made static dlls/dplayx/dplay.o: cbDeleteGroupsElem should be made static dlls/dplayx/dplay.o: cbDeletePlayerElem should be made static dlls/dplayx/dplayx_global.o: DPLAYX_DestroyLobbyApplication should be made static dlls/dplayx/dplayx_global.o: DPLAYX_SetLocalSession should be made static dlls/dplayx/name_server.o: NS_GetOtherMagic should be made static dlls/dplayx/name_server.o: NS_SetRemoteComputerAsNameServer should be made static dlls/dsound/capture.o: DirectSoundCaptureDevice_AddRef should be made static dlls/fusion/assembly.o: assembly_get_architecture should be made static dlls/fusion/fusion.o: CompareAssemblyIdentity should be made static dlls/fusion/fusion.o: GetAssemblyIdentityFromFile should be made static dlls/inetcomm/internettransport.o: InternetTransport_Read should be made static dlls/iphlpapi/ifenum.o: getInterfaceEntryByIndex should be made static dlls/iphlpapi/ifenum.o: getInterfacePhysicalByName should be made static dlls/itss/chm_lib.o: chm_enumerate should be made static dlls/jscript/parser.tab.o: parser_parse should be made static dlls/mountmgr.sys/mountmgr.o: DriverEntry should be made static dlls/msacm32/internal.o: MSACM_UnregisterLocalDriver should be made static dlls/mshtml/htmlelemcol.o: HTMLElementCollection_Create should be made static dlls/msi/cond.tab.o: cond_parse should be made static dlls/msi/database.o: MSI_DatabaseExport should be made static dlls/msi/database.o: MSI_DatabaseImport should be made static dlls/msi/dialog.o: msi_dialog_register_class should be made static dlls/msi/events.o: ControlEvent_UnSubscribeToEvent should be made static dlls/msi/helpers.o: msi_ui_error should be made static dlls/msi/helpers.o: reduce_to_shortfilename should be made static dlls/msi/media.o: find_published_source should be made static dlls/msi/media.o: msi_load_media_info should be made static dlls/msi/preview.o: MSI_EnableUIPreview should be made static dlls/msi/preview.o: MSI_PreviewDialogW should be made static dlls/msi/record.o: MSI_RecordDataSize should be made static dlls/msi/record.o: MSI_RecordSetStream should be made static dlls/msi/record.o: MSI_RecordSetStringA should be made static dlls/msi/registry.o: MSIREG_OpenInstallerFeaturesKey should be made static dlls/msi/registry.o: msi_version_dword_to_str should be made static dlls/msi/sql.tab.o: sql_parse should be made static dlls/msi/string.o: msi_id2stringA should be made static dlls/msi/string.o: msi_id2stringW should be made static dlls/msi/string.o: msi_strcmp should be made static dlls/msi/string.o: msi_string2idA should be made static dlls/msi/table.o: db_get_raw_stream should be made static dlls/msi/table.o: encode_streamname should be made static dlls/netapi32/nbnamecache.o: NBNameCacheUpdateNBName should be made static dlls/ole32/ole16.o: IMalloc16_Constructor should be made static dlls/qcap/enummedia.o: FreeMediaType should be made static dlls/qcap/pin.o: IPinImpl_QueryInternalConnections should be made static dlls/riched20/caret.o: ME_SelectByType should be made static dlls/riched20/caret.o: ME_UpdateSelection should be made static dlls/riched20/editor.o: ME_DestroyEditor should be made static dlls/riched20/editor.o: ME_FindNextURLCandidate should be made static dlls/riched20/editor.o: ME_HandleMessage should be made static dlls/riched20/editor.o: ME_IsCandidateAnURL should be made static dlls/riched20/editor.o: ME_LinkNotify should be made static dlls/riched20/editor.o: ME_MakeEditor should be made static dlls/riched20/editor.o: ME_UpdateLinkAttribute should be made static dlls/riched20/editor.o: ME_UpdateSelectionLinkAttribute should be made static dlls/riched20/editor.o: REComboWndProc should be made static dlls/riched20/editor.o: REListWndProc should be made static dlls/riched20/list.o: ME_DITypesEqual should be made static dlls/riched20/list.o: ME_FindItemFwdOrHere should be made static dlls/riched20/paint.o: ME_DrawParagraph should be made static dlls/riched20/paint.o: ME_GetYScrollVisible should be made static dlls/riched20/paint.o: ME_InvalidateFromOfs should be made static dlls/riched20/paint.o: ME_QueueInvalidateFromCursor should be made static dlls/riched20/paint.o: ME_Scroll should be made static dlls/riched20/para.o: ME_GetParaFormat should be made static dlls/riched20/para.o: ME_MarkForWrapping should be made static dlls/riched20/para.o: ME_SetParaFormat should be made static dlls/riched20/reader.o: RTFExpandStyle should be made static dlls/riched20/reader.o: RTFGetClassCallback should be made static dlls/riched20/reader.o: RTFGetDestinationCallback should be made static dlls/riched20/reader.o: RTFGetInputName should be made static dlls/riched20/reader.o: RTFGetOutputName should be made static dlls/riched20/reader.o: RTFGetReadHook should be made static dlls/riched20/reader.o: RTFGetStyle should be made static dlls/riched20/reader.o: RTFHexToChar should be made static dlls/riched20/reader.o: RTFPeekToken should be made static dlls/riched20/reader.o: RTFSetClassCallback should be made static dlls/riched20/reader.o: RTFSetInputName should be made static dlls/riched20/reader.o: RTFSetOutputName should be made static dlls/riched20/reader.o: RTFSetToken should be made static dlls/riched20/reader.o: RTFUngetToken should be made static dlls/riched20/row.o: ME_FindRowStart should be made static dlls/riched20/string.o: ME_ConcatString should be made static dlls/riched20/string.o: ME_GetOptimalBuffer should be made static dlls/riched20/string.o: ME_MakeStringB should be made static dlls/riched20/style.o: ME_CopyToCF2W should be made static dlls/riched20/style.o: ME_ToCFAny should be made static dlls/rpcrt4/ndr_marshall.o: NdrByteCountPointerMemorySize should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeBufferSize should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeFree should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeMarshall should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeMemorySize should be made static dlls/rpcrt4/rpc_message.o: NCA2RPC_STATUS should be made static dlls/rpcrt4/rpc_message.o: RPCRT4_receive_fragment should be made static dlls/rpcrt4/rpc_message.o: RPCRT4_ValidateCommonHeader should be made static dlls/rpcrt4/rpc_transport.o: RPCRT4_SpawnConnection should be made static dlls/rsaenh/handle.o: alloc_handle_table should be made static dlls/rsaenh/handle.o: release_handle_table should be made static dlls/rsaenh/mpi.o: mp_2expt should be made static dlls/rsaenh/mpi.o: mp_abs should be made static dlls/rsaenh/mpi.o: mp_add_d should be made static dlls/rsaenh/mpi.o: mp_clamp should be made static dlls/rsaenh/mpi.o: mp_clear should be made static dlls/rsaenh/mpi.o: mp_cmp_mag should be made static dlls/rsaenh/mpi.o: mp_cnt_lsb should be made static dlls/rsaenh/mpi.o: mp_div_2d should be made static dlls/rsaenh/mpi.o: mp_div_2 should be made static dlls/rsaenh/mpi.o: mp_div_d should be made static dlls/rsaenh/mpi.o: mp_div should be made static dlls/rsaenh/mpi.o: mp_dr_reduce should be made static dlls/rsaenh/mpi.o: mp_dr_setup should be made static dlls/rsaenh/mpi.o: mp_exch should be made static dlls/rsaenh/mpi.o: mp_grow should be made static dlls/rsaenh/mpi.o: mp_init should be made static dlls/rsaenh/mpi.o: mp_init_size should be made static dlls/rsaenh/mpi.o: mp_lshd should be made static dlls/rsaenh/mpi.o: mp_mod_2d should be made static dlls/rsaenh/mpi.o: mp_mod_d should be made static dlls/rsaenh/mpi.o: mp_montgomery_calc_normalization should be made static dlls/rsaenh/mpi.o: mp_montgomery_reduce should be made static dlls/rsaenh/mpi.o: mp_montgomery_setup should be made static dlls/rsaenh/mpi.o: mp_mul_2d should be made static dlls/rsaenh/mpi.o: mp_mul_2 should be made static dlls/rsaenh/mpi.o: mp_mul_d should be made static dlls/rsaenh/mpi.o: mp_prime_is_divisible should be made static dlls/rsaenh/mpi.o: mp_prime_is_prime should be made static dlls/rsaenh/mpi.o: mp_prime_miller_rabin should be made static dlls/rsaenh/mpi.o: mp_reduce_2k_setup should be made static dlls/rsaenh/mpi.o: mp_reduce_2k should be made static dlls/rsaenh/mpi.o: mp_reduce_setup should be made static dlls/rsaenh/mpi.o: mp_reduce should be made static dlls/rsaenh/mpi.o: mp_rshd should be made static dlls/rsaenh/mpi.o: mp_set should be made static dlls/rsaenh/mpi.o: mp_signed_bin_size should be made static dlls/rsaenh/mpi.o: mp_sqrmod should be made static dlls/rsaenh/mpi.o: mp_sqr should be made static dlls/rsaenh/mpi.o: mp_zero should be made static dlls/sane.ds/ds_ctrl.o: SANE_AutomaticCaptureDirectory should be made static dlls/sane.ds/ds_ctrl.o: SANE_FileSystemCopy should be made static dlls/sane.ds/ds_ctrl.o: SANE_PendingXfersStopFeeder should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2GetDefault should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2Get should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2Reset should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2Set should be made static dlls/setupapi/parser.o: PARSER_string_substW should be made static dlls/setupapi/virtcopy.o: VcpEnumFiles should be made static dlls/setupapi/virtcopy.o: VcpFlush16 should be made static dlls/setupapi/virtcopy.o: vsmStringCompare16 should be made static dlls/setupapi/virtcopy.o: vsmStringFind16 should be made static dlls/shell32/classes.o: HCR_GetDefaultIconFromGUIDW should be made static dlls/shell32/clipboard.o: RenderFILECONTENTS should be made static dlls/shell32/clipboard.o: RenderFILEDESCRIPTOR should be made static dlls/shell32/clipboard.o: RenderPREFEREDDROPEFFECT should be made static dlls/shell32/clipboard.o: RenderSHELLIDLISTOFFSET should be made static dlls/shell32/pidl.o: ILGetDisplayNameExA should be made static dlls/shell32/pidl.o: _ILGetSTextPointer should be made static dlls/shell32/pidl.o: _ILGetTextPointerW should be made static dlls/shell32/pidl.o: SHILCreateFromPathA should be made static dlls/shell32/trash.o: TRASH_DisposeElement should be made static dlls/shell32/xdg.o: XDG_GetPath should be made static dlls/user32/cursoricon.o: LookupIconIdFromDirectory16 should be made static dlls/user32/edit.o: EditWndProcW should be made static dlls/uxtheme/uxini.o: UXINI_ResetINI should be made static dlls/winealsa.drv/alsa.o: ALSA_PeekRingMessage should be made static dlls/winealsa.drv/waveout.o: wodSetVolume should be made static dlls/winedos/himem.o: DOSVM_AllocCodeUMB should be made static dlls/winedos/himem.o: DOSVM_AllocUMB should be made static dlls/winedos/int31.o: DPMI_FreeInternalRMCB should be made static dlls/wineps.drv/color.o: PSDRV_CmpColor should be made static dlls/wineps.drv/ps.o: PSDRV_WriteArrayGet should be made static dlls/wineps.drv/ps.o: PSDRV_WriteInitClip should be made static dlls/wineps.drv/ps.o: PSDRV_WriteRRectangle should be made static dlls/winex11.drv/graphics.o: X11DRV_SetupGCForPen should be made static dlls/winex11.drv/window.o: X11DRV_get_client_window should be made static dlls/winex11.drv/window.o: X11DRV_window_to_X_rect should be made static dlls/winex11.drv/xrandr.o: X11DRV_XRandR_Cleanup should be made static dlls/winex11.drv/xvidmode.o: X11DRV_XF86VM_SetExclusiveMode should be made static dlls/wininet/http.o: HTTP_FinishedReading should be made static dlls/wininet/http.o: HTTP_GetHeader should be made static dlls/wininet/http.o: HTTP_HttpOpenRequestW should be made static dlls/wininet/http.o: HTTP_HttpSendRequestW should be made static dlls/winmm/mci.o: MCI_DefYieldProc should be made static dlls/winmm/mci.o: MCI_GetDriverFromString should be made static dlls/winmm/mci.o: MCI_SendCommandFrom16 should be made static dlls/winmm/mci.o: MCI_SendCommandFrom32 should be made static dlls/winmm/mci.o: MCI_WriteString should be made static dlls/wintrust/asn.o: CRYPT_AsnEncodeInt should be made static dlls/wintrust/wintrust_main.o: WINTRUST_ReAlloc should be made static dlls/wnaspi32/aspi.o: SCSI_GetDeviceName should be made static dlls/wnaspi32/winaspi16.o: ASPI_SendASPICommand should be made static dlls/wuapi/updates.o: AutomaticUpdates_create should be made static programs/progman/dialog.o: DIALOG_Symbol should be made static programs/regedit/childwnd.o: GetRootKeyName should be made static programs/regedit/hexedit.o: HexEdit_Unregister should be made static programs/regedit/regproc.o: GetMultiByteStringN should be made static programs/regedit/regproc.o: GetWideStringN should be made static programs/regedit/regproc.o: processRegLinesA should be made static programs/regedit/regproc.o: processRegLinesW should be made static programs/taskmgr/applpage.o: UpdateApplicationListControlViewSetting should be made static programs/taskmgr/graphctl.o: GraphCtrl_DrawPoint should be made static programs/taskmgr/graphctl.o: GraphCtrl_InvalidateCtrl should be made static programs/taskmgr/graphctl.o: GraphCtrl_Paint should be made static programs/taskmgr/graphctl.o: GraphCtrl_Resize should be made static programs/taskmgr/taskmgr.o: Draw3dRect2 should be made static programs/taskmgr/taskmgr.o: Draw3dRect should be made static programs/taskmgr/taskmgr.o: FillSolidRect2 should be made static programs/taskmgr/trayicon.o: TrayIcon_GetProcessorUsageIcon should be made static programs/winecfg/winecfg.o: enumerate_valuesW should be made static programs/wineconsole/user.o: WCUSER_AreFontsEqual should be made static programs/wineconsole/wineconsole.o: WINECON_FetchCells should be made static programs/wineconsole/wineconsole.o: WINECON_GetHistoryMode should be made static programs/wineconsole/wineconsole.o: WINECON_SetHistoryMode should be made static programs/wineconsole/wineconsole.o: WINECON_SetHistorySize should be made static programs/winedbg/dbg.tab.o: dbg_parse should be made static programs/winedbg/dbg.tab.o: parser should be made static programs/winedbg/debug.yy.o: dbg_alloc should be made static programs/winedbg/debug.yy.o: dbg__create_buffer should be made static programs/winedbg/debug.yy.o: dbg__delete_buffer should be made static programs/winedbg/debug.yy.o: dbg__flush_buffer should be made static programs/winedbg/debug.yy.o: dbg_free should be made static programs/winedbg/debug.yy.o: dbg_get_debug should be made static programs/winedbg/debug.yy.o: dbg_get_in should be made static programs/winedbg/debug.yy.o: dbg_get_leng should be made static programs/winedbg/debug.yy.o: dbg_get_lineno should be made static programs/winedbg/debug.yy.o: dbg_get_out should be made static programs/winedbg/debug.yy.o: dbg_get_text should be made static programs/winedbg/debug.yy.o: dbg_lex_destroy should be made static programs/winedbg/debug.yy.o: dbg_pop_buffer_state should be made static programs/winedbg/debug.yy.o: dbg_push_buffer_state should be made static programs/winedbg/debug.yy.o: dbg_realloc should be made static programs/winedbg/debug.yy.o: dbg_restart should be made static programs/winedbg/debug.yy.o: dbg__scan_buffer should be made static programs/winedbg/debug.yy.o: dbg__scan_bytes should be made static programs/winedbg/debug.yy.o: dbg__scan_string should be made static programs/winedbg/debug.yy.o: dbg_set_debug should be made static programs/winedbg/debug.yy.o: dbg_set_in should be made static programs/winedbg/debug.yy.o: dbg_set_lineno should be made static programs/winedbg/debug.yy.o: dbg_set_out should be made static programs/winedbg/debug.yy.o: dbg__switch_to_buffer should be made static programs/winedbg/debug.yy.o: dbg_wrap should be made static programs/winedbg/debug.yy.o: lexeme_alloc should be made static programs/winedbg/expr.o: expr_alloc_uconstant should be made static programs/winedbg/memory.o: be_cpu_build_addr should be made static programs/winedbg/memory.o: be_cpu_linearize should be made static programs/winedbg/tgt_minidump.o: validate_file should be made static programs/winedbg/winedbg.o: dbg_outputA should be made static programs/winhlp32/macro.lex.yy.o: yyalloc should be made static programs/winhlp32/macro.lex.yy.o: yy_create_buffer should be made static programs/winhlp32/macro.lex.yy.o: yy_delete_buffer should be made static programs/winhlp32/macro.lex.yy.o: yy_flush_buffer should be made static programs/winhlp32/macro.lex.yy.o: yyfree should be made static programs/winhlp32/macro.lex.yy.o: yyget_debug should be made static programs/winhlp32/macro.lex.yy.o: yyget_in should be made static programs/winhlp32/macro.lex.yy.o: yyget_leng should be made static programs/winhlp32/macro.lex.yy.o: yyget_lineno should be made static programs/winhlp32/macro.lex.yy.o: yyget_out should be made static programs/winhlp32/macro.lex.yy.o: yyget_text should be made static programs/winhlp32/macro.lex.yy.o: yylex_destroy should be made static programs/winhlp32/macro.lex.yy.o: yylex should be made static programs/winhlp32/macro.lex.yy.o: yypop_buffer_state should be made static programs/winhlp32/macro.lex.yy.o: yypush_buffer_state should be made static programs/winhlp32/macro.lex.yy.o: yyrealloc should be made static programs/winhlp32/macro.lex.yy.o: yyrestart should be made static programs/winhlp32/macro.lex.yy.o: yy_scan_buffer should be made static programs/winhlp32/macro.lex.yy.o: yy_scan_bytes should be made static programs/winhlp32/macro.lex.yy.o: yy_scan_string should be made static programs/winhlp32/macro.lex.yy.o: yyset_debug should be made static programs/winhlp32/macro.lex.yy.o: yyset_in should be made static programs/winhlp32/macro.lex.yy.o: yyset_lineno should be made static programs/winhlp32/macro.lex.yy.o: yyset_out should be made static programs/winhlp32/macro.lex.yy.o: yy_switch_to_buffer should be made static programs/winhlp32/macro.lex.yy.o: yywrap should be made static
Francois Gouget wrote:
Thanks for the help with this task. With the last round of patches we are now down to about 280 warnings so there's definite progress. Here's the updated list:
[...]
Here are the apparently unused functions I have encountered in the dlls so far. Please speak up for any you want kept or any you can authoritatively declare as being no longer required.
dlls/cabinet/fdi.c: QTMupdatemodel(), make_decode_table() dlls/dbghelp/storage.c: hash_table_find() dls/dplayx/dplayx_global.c: DPLAYX_DestroyLobbyApplication(), DPLAYX_SetLocalSession() [#if 0'd out in name_server.c] dls/dplayx/name_server.c: NS_SetRemoteComputerAsNameServer(), NS_GetOtherMagic() [#if 0'd out in dplayx_messages.c] dlls/dsound/capture.c: DirectSoundCaptureDevice_AddRef() dlls/fusion/assembly.c: assembly_get_architecture() [stub] dlls/inetcomm/internettransport.c: InternetTransport_Read() dlls/iphlpapi/ifenum.c: getInterfaceEntryByIndex() dlls/itss/chm_lib.c: chm_enumerate() dlls/mountmgr.sys/mountmgr.c: DriverEntry()
Thanks.
dlls/iphlpapi/ifenum.c: getInterfaceEntryByIndex()
This one's definitely dead, go ahead and remove it.
Thanks, --Juan
I had a look at the functions generated by Flex and Bison. Neither of them can know whether the functions they generate will be called from other object files or not (and they don't provide a way to make them all static anyway). So I updated my script to automatically ignore these functions (and I attached the new version of the script).
With that and the help from Andrew Talbot we're down to less than 200 warnings :-) Getting there...
Here's the updated list.
dlls/cabinet/fdi.o: QTMupdatemodel should be made static dlls/cabinet/fdi.o: make_decode_table should be made static dlls/comctl32/tests/msg.o: flush_sequence should be made static dlls/dbghelp/storage.o: hash_table_find should be made static dlls/dmime/patterntrack.o: DMUSIC_CreateDirectMusicPatternTrackImpl should be made static dlls/dmime/tool.o: DMUSIC_CreateDirectMusicobjImpl should be made static dlls/dplayx/dplayx_global.o: DPLAYX_DestroyLobbyApplication should be made static dlls/dplayx/dplayx_global.o: DPLAYX_SetLocalSession should be made static dlls/dplayx/name_server.o: NS_GetOtherMagic should be made static dlls/dplayx/name_server.o: NS_SetRemoteComputerAsNameServer should be made static dlls/dplayx/dplay.o: cbDeleteGroupsElem should be made static dlls/dplayx/dplay.o: cbDeletePlayerElem should be made static dlls/dsound/capture.o: DirectSoundCaptureDevice_AddRef should be made static dlls/fusion/fusion.o: CompareAssemblyIdentity should be made static dlls/fusion/fusion.o: GetAssemblyIdentityFromFile should be made static dlls/fusion/assembly.o: assembly_get_architecture should be made static dlls/inetcomm/internettransport.o: InternetTransport_Read should be made static dlls/iphlpapi/ifenum.o: getInterfacePhysicalByName should be made static dlls/itss/chm_lib.o: chm_enumerate should be made static dlls/mountmgr.sys/mountmgr.o: DriverEntry should be made static dlls/msi/events.o: ControlEvent_UnSubscribeToEvent should be made static dlls/msi/string.o: msi_id2stringW should be made static dlls/msi/string.o: msi_strcmp should be made static dlls/msi/helpers.o: msi_ui_error should be made static dlls/msi/registry.o: msi_version_dword_to_str should be made static dlls/msi/helpers.o: reduce_to_shortfilename should be made static dlls/netapi32/nbnamecache.o: NBNameCacheUpdateNBName should be made static dlls/qcap/pin.o: IPinImpl_QueryInternalConnections should be made static dlls/riched20/string.o: ME_ConcatString should be made static dlls/riched20/style.o: ME_CopyToCF2W should be made static dlls/riched20/list.o: ME_DITypesEqual should be made static dlls/riched20/paint.o: ME_DrawParagraph should be made static dlls/riched20/list.o: ME_FindItemFwdOrHere should be made static dlls/riched20/row.o: ME_FindRowStart should be made static dlls/riched20/string.o: ME_GetOptimalBuffer should be made static dlls/riched20/para.o: ME_GetParaFormat should be made static dlls/riched20/paint.o: ME_GetYScrollVisible should be made static dlls/riched20/paint.o: ME_InvalidateFromOfs should be made static dlls/riched20/editor.o: ME_LinkNotify should be made static dlls/riched20/string.o: ME_MakeStringB should be made static dlls/riched20/para.o: ME_MarkForWrapping should be made static dlls/riched20/paint.o: ME_QueueInvalidateFromCursor should be made static dlls/riched20/paint.o: ME_Scroll should be made static dlls/riched20/para.o: ME_SetParaFormat should be made static dlls/riched20/style.o: ME_ToCFAny should be made static dlls/riched20/editor.o: REComboWndProc should be made static dlls/riched20/editor.o: REListWndProc should be made static dlls/riched20/reader.o: RTFExpandStyle should be made static dlls/riched20/reader.o: RTFGetClassCallback should be made static dlls/riched20/reader.o: RTFGetDestinationCallback should be made static dlls/riched20/reader.o: RTFGetInputName should be made static dlls/riched20/reader.o: RTFGetOutputName should be made static dlls/riched20/reader.o: RTFGetReadHook should be made static dlls/riched20/reader.o: RTFGetStyle should be made static dlls/riched20/reader.o: RTFHexToChar should be made static dlls/riched20/reader.o: RTFPeekToken should be made static dlls/riched20/reader.o: RTFSetClassCallback should be made static dlls/riched20/reader.o: RTFSetInputName should be made static dlls/riched20/reader.o: RTFSetOutputName should be made static dlls/riched20/reader.o: RTFSetToken should be made static dlls/riched20/reader.o: RTFUngetToken should be made static dlls/rpcrt4/rpc_message.o: NCA2RPC_STATUS should be made static dlls/rpcrt4/ndr_marshall.o: NdrByteCountPointerMemorySize should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeBufferSize should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeFree should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeMarshall should be made static dlls/rpcrt4/ndr_marshall.o: NdrRangeMemorySize should be made static dlls/rpcrt4/rpc_transport.o: RPCRT4_SpawnConnection should be made static dlls/rpcrt4/rpc_message.o: RPCRT4_ValidateCommonHeader should be made static dlls/rpcrt4/rpc_message.o: RPCRT4_receive_fragment should be made static dlls/rsaenh/handle.o: alloc_handle_table should be made static dlls/rsaenh/mpi.o: mp_2expt should be made static dlls/rsaenh/mpi.o: mp_abs should be made static dlls/rsaenh/mpi.o: mp_add_d should be made static dlls/rsaenh/mpi.o: mp_clamp should be made static dlls/rsaenh/mpi.o: mp_clear should be made static dlls/rsaenh/mpi.o: mp_cmp_mag should be made static dlls/rsaenh/mpi.o: mp_cnt_lsb should be made static dlls/rsaenh/mpi.o: mp_div should be made static dlls/rsaenh/mpi.o: mp_div_2 should be made static dlls/rsaenh/mpi.o: mp_div_2d should be made static dlls/rsaenh/mpi.o: mp_div_d should be made static dlls/rsaenh/mpi.o: mp_dr_reduce should be made static dlls/rsaenh/mpi.o: mp_dr_setup should be made static dlls/rsaenh/mpi.o: mp_exch should be made static dlls/rsaenh/mpi.o: mp_grow should be made static dlls/rsaenh/mpi.o: mp_init should be made static dlls/rsaenh/mpi.o: mp_init_size should be made static dlls/rsaenh/mpi.o: mp_lshd should be made static dlls/rsaenh/mpi.o: mp_mod_2d should be made static dlls/rsaenh/mpi.o: mp_mod_d should be made static dlls/rsaenh/mpi.o: mp_montgomery_calc_normalization should be made static dlls/rsaenh/mpi.o: mp_montgomery_reduce should be made static dlls/rsaenh/mpi.o: mp_montgomery_setup should be made static dlls/rsaenh/mpi.o: mp_mul_2 should be made static dlls/rsaenh/mpi.o: mp_mul_2d should be made static dlls/rsaenh/mpi.o: mp_mul_d should be made static dlls/rsaenh/mpi.o: mp_prime_is_divisible should be made static dlls/rsaenh/mpi.o: mp_prime_is_prime should be made static dlls/rsaenh/mpi.o: mp_prime_miller_rabin should be made static dlls/rsaenh/mpi.o: mp_reduce should be made static dlls/rsaenh/mpi.o: mp_reduce_2k should be made static dlls/rsaenh/mpi.o: mp_reduce_2k_setup should be made static dlls/rsaenh/mpi.o: mp_reduce_setup should be made static dlls/rsaenh/mpi.o: mp_rshd should be made static dlls/rsaenh/mpi.o: mp_set should be made static dlls/rsaenh/mpi.o: mp_signed_bin_size should be made static dlls/rsaenh/mpi.o: mp_sqr should be made static dlls/rsaenh/mpi.o: mp_sqrmod should be made static dlls/rsaenh/mpi.o: mp_zero should be made static dlls/rsaenh/handle.o: release_handle_table should be made static dlls/sane.ds/ds_ctrl.o: SANE_AutomaticCaptureDirectory should be made static dlls/sane.ds/ds_ctrl.o: SANE_FileSystemCopy should be made static dlls/sane.ds/ds_ctrl.o: SANE_PendingXfersStopFeeder should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2Get should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2GetDefault should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2Reset should be made static dlls/sane.ds/ds_ctrl.o: SANE_SetupFileXfer2Set should be made static dlls/setupapi/parser.o: PARSER_string_substW should be made static dlls/setupapi/virtcopy.o: VcpEnumFiles should be made static dlls/setupapi/virtcopy.o: VcpFlush16 should be made static dlls/setupapi/virtcopy.o: vsmStringCompare16 should be made static dlls/setupapi/virtcopy.o: vsmStringFind16 should be made static dlls/shell32/classes.o: HCR_GetDefaultIconFromGUIDW should be made static dlls/shell32/pidl.o: ILGetDisplayNameExA should be made static dlls/shell32/clipboard.o: RenderFILECONTENTS should be made static dlls/shell32/clipboard.o: RenderFILEDESCRIPTOR should be made static dlls/shell32/clipboard.o: RenderPREFEREDDROPEFFECT should be made static dlls/shell32/clipboard.o: RenderSHELLIDLISTOFFSET should be made static dlls/shell32/pidl.o: SHILCreateFromPathA should be made static dlls/shell32/trash.o: TRASH_DisposeElement should be made static dlls/shell32/xdg.o: XDG_GetPath should be made static dlls/shell32/pidl.o: _ILGetSTextPointer should be made static dlls/shell32/pidl.o: _ILGetTextPointerW should be made static dlls/urlmon/http.o: create_http_protocol should be made static dlls/user32/edit.o: EditWndProcW should be made static dlls/user32/cursoricon.o: LookupIconIdFromDirectory16 should be made static dlls/uxtheme/uxini.o: UXINI_ResetINI should be made static dlls/winealsa.drv/alsa.o: ALSA_PeekRingMessage should be made static dlls/winealsa.drv/waveout.o: wodSetVolume should be made static dlls/winedos/himem.o: DOSVM_AllocCodeUMB should be made static dlls/winedos/himem.o: DOSVM_AllocUMB should be made static dlls/winedos/int31.o: DPMI_FreeInternalRMCB should be made static dlls/wineps.drv/color.o: PSDRV_CmpColor should be made static dlls/wineps.drv/ps.o: PSDRV_WriteArrayGet should be made static dlls/wineps.drv/ps.o: PSDRV_WriteInitClip should be made static dlls/wineps.drv/ps.o: PSDRV_WriteRRectangle should be made static dlls/winex11.drv/graphics.o: X11DRV_SetupGCForPen should be made static dlls/winex11.drv/xvidmode.o: X11DRV_XF86VM_SetExclusiveMode should be made static dlls/winex11.drv/xrandr.o: X11DRV_XRandR_Cleanup should be made static dlls/winex11.drv/window.o: X11DRV_get_client_window should be made static dlls/winex11.drv/window.o: X11DRV_window_to_X_rect should be made static dlls/wininet/http.o: HTTP_FinishedReading should be made static dlls/wininet/http.o: HTTP_GetHeader should be made static dlls/wininet/http.o: HTTP_HttpOpenRequestW should be made static dlls/wininet/http.o: HTTP_HttpSendRequestW should be made static dlls/winmm/mci.o: MCI_DefYieldProc should be made static dlls/winmm/mci.o: MCI_GetDriverFromString should be made static dlls/winmm/mci.o: MCI_SendCommandFrom16 should be made static dlls/winmm/mci.o: MCI_SendCommandFrom32 should be made static dlls/winmm/mci.o: MCI_WriteString should be made static dlls/wintrust/asn.o: CRYPT_AsnEncodeInt should be made static dlls/wintrust/wintrust_main.o: WINTRUST_ReAlloc should be made static dlls/wnaspi32/winaspi16.o: ASPI_SendASPICommand should be made static dlls/wnaspi32/aspi.o: SCSI_GetDeviceName should be made static dlls/wuapi/updates.o: AutomaticUpdates_create should be made static programs/progman/dialog.o: DIALOG_Symbol should be made static programs/regedit/regproc.o: GetMultiByteStringN should be made static programs/regedit/childwnd.o: GetRootKeyName should be made static programs/regedit/regproc.o: GetWideStringN should be made static programs/regedit/hexedit.o: HexEdit_Unregister should be made static programs/regedit/regproc.o: processRegLinesA should be made static programs/regedit/regproc.o: processRegLinesW should be made static programs/taskmgr/taskmgr.o: Draw3dRect should be made static programs/taskmgr/taskmgr.o: Draw3dRect2 should be made static programs/taskmgr/taskmgr.o: FillSolidRect2 should be made static programs/taskmgr/graphctl.o: GraphCtrl_DrawPoint should be made static programs/taskmgr/graphctl.o: GraphCtrl_InvalidateCtrl should be made static programs/taskmgr/graphctl.o: GraphCtrl_Paint should be made static programs/taskmgr/graphctl.o: GraphCtrl_Resize should be made static programs/taskmgr/trayicon.o: TrayIcon_GetProcessorUsageIcon should be made static programs/taskmgr/applpage.o: UpdateApplicationListControlViewSetting should be made static programs/winecfg/winecfg.o: enumerate_valuesW should be made static programs/wineconsole/user.o: WCUSER_AreFontsEqual should be made static programs/wineconsole/wineconsole.o: WINECON_FetchCells should be made static programs/wineconsole/wineconsole.o: WINECON_GetHistoryMode should be made static programs/wineconsole/wineconsole.o: WINECON_SetHistoryMode should be made static programs/wineconsole/wineconsole.o: WINECON_SetHistorySize should be made static programs/winedbg/memory.o: be_cpu_build_addr should be made static programs/winedbg/memory.o: be_cpu_linearize should be made static programs/winedbg/winedbg.o: dbg_outputA should be made static programs/winedbg/debug.yy.o: lexeme_alloc should be made static programs/winedbg/dbg.tab.o: parser should be made static programs/winedbg/tgt_minidump.o: validate_file should be made static