diff --git a/repos/libports/lib/mk/libsanitizer_common.mk b/repos/libports/lib/mk/libsanitizer_common.mk index 15ffccedf5..64138c941a 100644 --- a/repos/libports/lib/mk/libsanitizer_common.mk +++ b/repos/libports/lib/mk/libsanitizer_common.mk @@ -11,7 +11,6 @@ SRC_CC = sanitizer_allocator.cpp \ sanitizer_flags.cpp \ sanitizer_genode.cc \ sanitizer_libc.cpp \ - sanitizer_persistent_allocator.cpp \ sanitizer_printf.cpp \ sanitizer_stackdepot.cpp \ sanitizer_stacktrace.cpp \ @@ -27,6 +26,9 @@ SRC_CC = sanitizer_allocator.cpp \ INC_DIR += $(SANITIZER_DIR) +# Prevent generation of 'strlen()' call by GCC 12 +CC_OPT += -fno-tree-loop-distribute-patterns + vpath %.cc $(SANITIZER_DIR)/sanitizer_common vpath %.cpp $(SANITIZER_DIR)/sanitizer_common diff --git a/repos/libports/lib/symbols/libsanitizer_common b/repos/libports/lib/symbols/libsanitizer_common index 91fef20ecc..5f4ad9dbd9 100644 --- a/repos/libports/lib/symbols/libsanitizer_common +++ b/repos/libports/lib/symbols/libsanitizer_common @@ -1,23 +1,24 @@ -OnPrint W _Z14sanitizer_exitv T _Z14sanitizer_initRN6Genode3EnvE T _ZN11__sanitizer10ExtractIntEPKcS1_Pi T _ZN11__sanitizer10FlagParser10ll_strndupEPKcm T -_ZN11__sanitizer10FlagParser10parse_flagEv T -_ZN11__sanitizer10FlagParser11ParseStringEPKc T +_ZN11__sanitizer10FlagParser10parse_flagEPKc T +_ZN11__sanitizer10FlagParser11ParseStringEPKcS2_ T _ZN11__sanitizer10FlagParser11fatal_errorEPKc T -_ZN11__sanitizer10FlagParser11parse_flagsEv T +_ZN11__sanitizer10FlagParser11parse_flagsEPKc T _ZN11__sanitizer10FlagParser11run_handlerEPKcS2_ T _ZN11__sanitizer10FlagParser15RegisterHandlerEPKcPNS_15FlagHandlerBaseES2_ T _ZN11__sanitizer10FlagParser15skip_whitespaceEv T +_ZN11__sanitizer10FlagParser18ParseStringFromEnvEPKc T _ZN11__sanitizer10FlagParser21PrintFlagDescriptionsEv T _ZN11__sanitizer10FlagParser5AllocE B 16 _ZN11__sanitizer10FlagParser8is_spaceEc T _ZN11__sanitizer10FlagParser9ParseFileEPKcb T _ZN11__sanitizer10FlagParserC1Ev T _ZN11__sanitizer10FlagParserC2Ev T -_ZN11__sanitizer10RenameFileEPKcS1_Pi T +_ZN11__sanitizer10ProtectGapEmmmm T _ZN11__sanitizer10RenderDataEPNS_20InternalScopedStringEPKcPKNS_8DataInfoES3_ T +_ZN11__sanitizer10ReportFile13GetReportPathEv T _ZN11__sanitizer10ReportFile13SetReportPathEPKc T _ZN11__sanitizer10ReportFile14SupportsColorsEv T _ZN11__sanitizer10ReportFile17ReopenIfNecessaryEv T @@ -30,18 +31,18 @@ _ZN11__sanitizer10Symbolizer12PlatformInitEv T _ZN11__sanitizer10Symbolizer13SymbolizeDataEmPNS_8DataInfoE T _ZN11__sanitizer10Symbolizer14LateInitializeEv T _ZN11__sanitizer10Symbolizer14RefreshModulesEv T +_ZN11__sanitizer10Symbolizer14SymbolizeFrameEmPNS_9FrameInfoE T _ZN11__sanitizer10Symbolizer15ModuleNameOwner12GetOwnedCopyEPKc T _ZN11__sanitizer10Symbolizer15SymbolizerScopeC1EPKS0_ T _ZN11__sanitizer10Symbolizer15SymbolizerScopeC2EPKS0_ T _ZN11__sanitizer10Symbolizer15SymbolizerScopeD1Ev T _ZN11__sanitizer10Symbolizer15SymbolizerScopeD2Ev T _ZN11__sanitizer10Symbolizer16PlatformDemangleEPKc T +_ZN11__sanitizer10Symbolizer19LateInitializeToolsEv T _ZN11__sanitizer10Symbolizer20FindModuleForAddressEm T _ZN11__sanitizer10Symbolizer20InvalidateModuleListEv T -_ZN11__sanitizer10Symbolizer20PrepareForSandboxingEv T _ZN11__sanitizer10Symbolizer21symbolizer_allocator_E B 16 _ZN11__sanitizer10Symbolizer27GetModuleNameAndOffsetForPCEmPPKcPm T -_ZN11__sanitizer10Symbolizer28PlatformPrepareForSandboxingEv T _ZN11__sanitizer10Symbolizer33FindModuleNameAndOffsetForAddressEmPPKcPmPNS_10ModuleArchE T _ZN11__sanitizer10Symbolizer5FlushEv T _ZN11__sanitizer10Symbolizer8AddHooksEPFvvES2_ T @@ -55,18 +56,18 @@ _ZN11__sanitizer11AddressInfo14FillModuleInfoEPKcmNS_10ModuleArchE T _ZN11__sanitizer11AddressInfo5ClearEv T _ZN11__sanitizer11AddressInfoC1Ev T _ZN11__sanitizer11AddressInfoC2Ev T +_ZN11__sanitizer11CheckFailedEPKciS1_yy T _ZN11__sanitizer11CommonFlags11SetDefaultsEv T _ZN11__sanitizer11CommonFlags8CopyFromERKS0_ T +_ZN11__sanitizer11ExtractSptrEPKcS1_Pl T _ZN11__sanitizer11ExtractUptrEPKcS1_Pm T _ZN11__sanitizer11GetPageSizeEv T -_ZN11__sanitizer11RenderFrameEPNS_20InternalScopedStringEPKciRKNS_11AddressInfoEbS3_S3_ T +_ZN11__sanitizer11RenderFrameEPNS_20InternalScopedStringEPKcimPKNS_11AddressInfoEbS3_S3_ T _ZN11__sanitizer11WriteToFileEiPKvmPmPi T _ZN11__sanitizer11mem_is_zeroEPKcm T _ZN11__sanitizer11report_fileE D 8216 -_ZN11__sanitizer12DieOnFailure12OnBadRequestEv T -_ZN11__sanitizer12DieOnFailure5OnOOMEv T _ZN11__sanitizer12ExtractTokenEPKcS1_PPc T -_ZN11__sanitizer12InternalFreeEPvPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T +_ZN11__sanitizer12InternalFreeEPvPNS_30SizeClassAllocator32LocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T _ZN11__sanitizer12LoadedModule15addAddressRangeEmmbbPKc T _ZN11__sanitizer12LoadedModule3setEPKcm T _ZN11__sanitizer12LoadedModule3setEPKcmNS_10ModuleArchEPhb T @@ -74,38 +75,42 @@ _ZN11__sanitizer12LoadedModule5clearEv T _ZN11__sanitizer12PrintCmdlineEv T _ZN11__sanitizer12ReadFromFileEiPvmPmPi T _ZN11__sanitizer12RunFreeHooksEPKv T -_ZN11__sanitizer13BlockingMutex11CheckLockedEv T -_ZN11__sanitizer13BlockingMutex4LockEv T -_ZN11__sanitizer13BlockingMutex6UnlockEv T -_ZN11__sanitizer13BlockingMutexC1Ev T -_ZN11__sanitizer13BlockingMutexC2Ev T -_ZN11__sanitizer13InternalAllocEmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEEm T +_ZN11__sanitizer13GetThreadSelfEv T +_ZN11__sanitizer13InternalAllocEmPNS_30SizeClassAllocator32LocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEEm T +_ZN11__sanitizer13ReadBinaryDirEPcm T _ZN11__sanitizer13StackDepotGetEj T _ZN11__sanitizer13StackDepotPutENS_10StackTraceE T _ZN11__sanitizer13TemplateMatchEPKcS1_ T _ZN11__sanitizer13WriteToSyslogEPKc T _ZN11__sanitizer13unknown_flagsE B 168 +_ZN11__sanitizer14AddDieCallbackEPFvvE T _ZN11__sanitizer14DemangleCXXABIEPKc T _ZN11__sanitizer14DumpProcessMapEv T _ZN11__sanitizer14GetProcessNameEv T -_ZN11__sanitizer14InternalCallocEmmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T +_ZN11__sanitizer14InternalCallocEmmPNS_30SizeClassAllocator32LocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T _ZN11__sanitizer14IsAbsolutePathEPKc T _ZN11__sanitizer14LLVMSymbolizer11SymbolizePCEmPNS_15SymbolizedStackE T _ZN11__sanitizer14LLVMSymbolizer13SymbolizeDataEmPNS_8DataInfoE T -_ZN11__sanitizer14LLVMSymbolizer20FormatAndSendCommandEbPKcmNS_10ModuleArchE T +_ZN11__sanitizer14LLVMSymbolizer14SymbolizeFrameEmPNS_9FrameInfoE T +_ZN11__sanitizer14LLVMSymbolizer20FormatAndSendCommandEPKcS2_mNS_10ModuleArchE T _ZN11__sanitizer14LLVMSymbolizerC1EPKcPNS_17LowLevelAllocatorE T _ZN11__sanitizer14LLVMSymbolizerC2EPKcPNS_17LowLevelAllocatorE T _ZN11__sanitizer14PageSizeCachedE B 8 _ZN11__sanitizer14ReadBinaryNameEPcm T _ZN11__sanitizer14RunMallocHooksEPKvm T -_ZN11__sanitizer14SleepForMillisEi T +_ZN11__sanitizer14SleepForMillisEj T +_ZN11__sanitizer14StackDepotNode10get_handleEj T +_ZN11__sanitizer14StackDepotNode5storeEjRKNS_10StackTraceEy T +_ZN11__sanitizer14StackDepotNode9allocatedEv T _ZN11__sanitizer14internal__exitEi T _ZN11__sanitizer14internal_atollEPKc T +_ZN11__sanitizer14internal_sleepEj T _ZN11__sanitizer14report_file_muE B 1 _ZN11__sanitizer15CacheBinaryNameEv T _ZN11__sanitizer15ColorizeReportsEv T -_ZN11__sanitizer15InternalReallocEPvmPNS_28SizeClassAllocatorLocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T +_ZN11__sanitizer15InternalReallocEPvmPNS_30SizeClassAllocator32LocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T _ZN11__sanitizer15IsPathSeparatorEc T +_ZN11__sanitizer15SleepForSecondsEj T _ZN11__sanitizer15StripModuleNameEPKc T _ZN11__sanitizer15StripPathPrefixEPKcS1_ T _ZN11__sanitizer15SymbolizedStack3NewEm T @@ -127,9 +132,8 @@ _ZN11__sanitizer16Addr2LineProcess18output_terminator_E R 9 _ZN11__sanitizer16FindPathToBinaryEPKc T _ZN11__sanitizer16MprotectNoAccessEmm T _ZN11__sanitizer16ReadFileToBufferEPKcPPcPmS4_mPi T +_ZN11__sanitizer16ReadFileToVectorEPKcPNS_24InternalMmapVectorNoCtorIcEEmPi T _ZN11__sanitizer16StackDepotHandle20inc_use_count_unsafeEv T -_ZN11__sanitizer16StackDepotHandle2idEv T -_ZN11__sanitizer16StackDepotHandle9use_countEv T _ZN11__sanitizer16internal_iserrorEmPi T _ZN11__sanitizer16internal_memmoveEPvPKvm T _ZN11__sanitizer16internal_memrchrEPKvim T @@ -139,12 +143,13 @@ _ZN11__sanitizer16internal_strlcpyEPcPKcm T _ZN11__sanitizer16internal_strncatEPcPKcm T _ZN11__sanitizer16internal_strncmpEPKcS1_m T _ZN11__sanitizer16internal_strncpyEPcPKcm T -_ZN11__sanitizer16internal_strndupEPKcm T _ZN11__sanitizer16internal_strnlenEPKcm T _ZN11__sanitizer16internal_strrchrEPKci T +_ZN11__sanitizer16internal_wcsnlenEPKwm T _ZN11__sanitizer17DecreaseTotalMmapEm T _ZN11__sanitizer17IncreaseTotalMmapEm T _ZN11__sanitizer17LowLevelAllocator8AllocateEm T +_ZN11__sanitizer17RemoveDieCallbackEPFvvE T _ZN11__sanitizer17SanitizerToolNameE D 8 _ZN11__sanitizer17StackDepotLockAllEv T _ZN11__sanitizer17SymbolizerProcess11SendCommandEPKc T @@ -157,21 +162,24 @@ _ZN11__sanitizer17SymbolizerProcessC1EPKcb T _ZN11__sanitizer17SymbolizerProcessC2EPKcb T _ZN11__sanitizer17UpdateProcessNameEv T _ZN11__sanitizer17current_verbosityE B 4 -_ZN11__sanitizer17flag_descriptionsE B 24 _ZN11__sanitizer17internal_snprintfEPcmPKcz T +_ZN11__sanitizer18BufferedStackTrace10UnwindFastEmmmmj T _ZN11__sanitizer18BufferedStackTrace14PopStackFramesEm T -_ZN11__sanitizer18BufferedStackTrace15FastUnwindStackEmmmmj T _ZN11__sanitizer18BufferedStackTrace15LocatePcInTraceEm T _ZN11__sanitizer18BufferedStackTrace4InitEPKmmm T _ZN11__sanitizer18BufferedStackTrace6UnwindEjmmPvmmb T _ZN11__sanitizer18GetMmapGranularityEv T _ZN11__sanitizer18HandleDeadlySignalEPvS0_jPFvRKNS_13SignalContextEPKvPNS_18BufferedStackTraceEES5_ T +_ZN11__sanitizer18InitializeCoverageEbPKc T _ZN11__sanitizer18MmapNoReserveOrDieEmPKc T +_ZN11__sanitizer18NumberOfCPUsCachedE B 4 _ZN11__sanitizer18ReportDeadlySignalERKNS_13SignalContextEjPFvS2_PKvPNS_18BufferedStackTraceEES4_ T _ZN11__sanitizer18ReportErrorSummaryEPKcPKNS_10StackTraceES1_ T _ZN11__sanitizer18ReportErrorSummaryEPKcRKNS_11AddressInfoES1_ T _ZN11__sanitizer18ReportErrorSummaryEPKcS1_ T +_ZN11__sanitizer18SetUserDieCallbackEPFvvE T _ZN11__sanitizer18StackDepotGetStatsEv T +_ZN11__sanitizer18StackDepotPrintAllEv T _ZN11__sanitizer18SuppressionContext10GetMatchedEPNS_18InternalMmapVectorIPNS_11SuppressionEEE T _ZN11__sanitizer18SuppressionContext13ParseFromFileEPKc T _ZN11__sanitizer18SuppressionContext5MatchEPKcS2_PPNS_11SuppressionE T @@ -184,26 +192,26 @@ _ZN11__sanitizer18internal_strchrnulEPKci T _ZN11__sanitizer19DemangleSwiftAndCXXEPKc T _ZN11__sanitizer19ReadLongProcessNameEPcm T _ZN11__sanitizer19RegisterCommonFlagsEPNS_10FlagParserEPNS_11CommonFlagsE T +_ZN11__sanitizer19ReportMmapWriteExecEii T _ZN11__sanitizer19StackDepotUnlockAllEv T +_ZN11__sanitizer20InternalReallocArrayEPvmmPNS_30SizeClassAllocator32LocalCacheINS_20SizeClassAllocator32INS_4AP32EEEEE T _ZN11__sanitizer20InternalScopedString6appendEPKcz T -_ZN11__sanitizer20PrepareForSandboxingEP29__sanitizer_sandbox_arguments T +_ZN11__sanitizer20PrimaryAllocatorNameE D 8 _ZN11__sanitizer20ReadBinaryNameCachedEPcm T _ZN11__sanitizer20RegisterIncludeFlagsEPNS_10FlagParserEPNS_11CommonFlagsE T _ZN11__sanitizer20RenderModuleLocationEPNS_20InternalScopedStringEPKcmNS_10ModuleArchES3_ T _ZN11__sanitizer20RenderSourceLocationEPNS_20InternalScopedStringEPKciibS3_ T -_ZN11__sanitizer20StackDepotReverseMap10IdDescPair12IdComparatorERKS1_S3_ T -_ZN11__sanitizer20StackDepotReverseMap3GetEj T -_ZN11__sanitizer20StackDepotReverseMapC1Ev T -_ZN11__sanitizer20StackDepotReverseMapC2Ev T +_ZN11__sanitizer20ReservedAddressRange11InitAlignedEmmPKc T _ZN11__sanitizer20internal_sched_yieldEv T _ZN11__sanitizer21InitializeCommonFlagsEPNS_11CommonFlagsE T _ZN11__sanitizer21ScopedErrorReportLock11CheckLockedEv T -_ZN11__sanitizer21ScopedErrorReportLockC1Ev T -_ZN11__sanitizer21ScopedErrorReportLockC2Ev T -_ZN11__sanitizer21ScopedErrorReportLockD1Ev T -_ZN11__sanitizer21ScopedErrorReportLockD2Ev T +_ZN11__sanitizer21ScopedErrorReportLock17reporting_thread_E B 8 +_ZN11__sanitizer21ScopedErrorReportLock4LockEv T +_ZN11__sanitizer21ScopedErrorReportLock6UnlockEv T +_ZN11__sanitizer21ScopedErrorReportLock6mutex_E B 1 _ZN11__sanitizer21SetSandboxingCallbackEPFvvE T -_ZN11__sanitizer21common_flags_dont_useE B 248 +_ZN11__sanitizer21SupportsColoredOutputEi T +_ZN11__sanitizer21common_flags_dont_useE B 288 _ZN11__sanitizer22AllocatorMayReturnNullEv T _ZN11__sanitizer22CatastrophicErrorWriteEPKcm T _ZN11__sanitizer22IsAllocatorOutOfMemoryEv T @@ -212,30 +220,34 @@ _ZN11__sanitizer22LibbacktraceSymbolizer13SymbolizeDataEmPNS_8DataInfoE T _ZN11__sanitizer22LibbacktraceSymbolizer3getEPNS_17LowLevelAllocatorE T _ZN11__sanitizer22LibbacktraceSymbolizer8DemangleEPKc T _ZN11__sanitizer22ParseSymbolizePCOutputEPKcPNS_15SymbolizedStackE T +_ZN11__sanitizer22SecondaryAllocatorNameE D 8 +_ZN11__sanitizer22SetCheckUnwindCallbackEPFvvE T _ZN11__sanitizer22SubstituteForFlagValueEPKcPcm T _ZN11__sanitizer22thePersistentAllocatorE B 24 _ZN11__sanitizer23IsAccessibleMemoryRangeEmm T _ZN11__sanitizer23MapWritableFileToMemoryEPvmim T _ZN11__sanitizer23ReportMmapFailureAndDieEmPKcS1_ib T _ZN11__sanitizer23ReportUnrecognizedFlagsEv T +_ZN11__sanitizer23SetAllocatorOutOfMemoryEv T +_ZN11__sanitizer23StackDepotTestOnlyUnmapEv T _ZN11__sanitizer23StartReportDeadlySignalEv T -_ZN11__sanitizer23internal_simple_strtollEPKcPPci T +_ZN11__sanitizer23internal_simple_strtollEPKcPS1_i T _ZN11__sanitizer23stoptheworld_tracer_pidE B 8 _ZN11__sanitizer24ParseSymbolizeDataOutputEPKcPNS_8DataInfoE T -_ZN11__sanitizer24ReturnNullOrDieOnFailure12OnBadRequestEv T -_ZN11__sanitizer24ReturnNullOrDieOnFailure5OnOOMEv T +_ZN11__sanitizer24RenderNeedsSymbolizationEPKc T +_ZN11__sanitizer24ReserveShadowMemoryRangeEmmPKcb T _ZN11__sanitizer24StackDepotPut_WithHandleENS_10StackTraceE T -_ZN11__sanitizer24internal_bzero_aligned16EPvm T _ZN11__sanitizer24stoptheworld_tracer_ppidE B 8 _ZN11__sanitizer25ExtractTokenUpToDelimiterEPKcS1_PPc T _ZN11__sanitizer25MaybeStartBackgroudThreadEv T _ZN11__sanitizer25SetAllocatorMayReturnNullEb T -_ZN11__sanitizer26CommonSanitizerReportMutexE B 1 _ZN11__sanitizer26SetPrintfAndReportCallbackEPFvPKcE T _ZN11__sanitizer27SetLowLevelAllocateCallbackEPFvmmE T -_ZN11__sanitizer31ReportAllocatorCannotReturnNullEv T +_ZN11__sanitizer31SetLowLevelAllocateMinAlignmentEm T _ZN11__sanitizer31SetSoftRssLimitExceededCallbackEPFvbE T +_ZN11__sanitizer34PrintHintAllocatorCannotReturnNullEv T _ZN11__sanitizer35RemoveANSIEscapeSequencesFromStringEPc T +_ZN11__sanitizer3DieEv T _ZN11__sanitizer5AbortEv T _ZN11__sanitizer6AtexitEPFvvE T _ZN11__sanitizer6GetEnvEPKc T @@ -248,18 +260,49 @@ _ZN11__sanitizer8DataInfoC2Ev T _ZN11__sanitizer8OpenFileEPKcNS_14FileAccessModeEPi T _ZN11__sanitizer8RawWriteEPKc T _ZN11__sanitizer9CloseFileEi T +_ZN11__sanitizer9FrameInfo5ClearEv T _ZN11__sanitizer9MmapOrDieEmPKcb T -_ZN11__sanitizer9SortArrayEPjm T -_ZN11__sanitizer9SortArrayEPmm T _ZN11__sanitizer9VSNPrintfEPciPKcP13__va_list_tag T _ZNK11__sanitizer10StackTrace5PrintEv T +_ZNK11__sanitizer10StackTrace7PrintToEPNS_20InternalScopedStringE T +_ZNK11__sanitizer10StackTrace7PrintToEPcm T _ZNK11__sanitizer12LoadedModule15containsAddressEm T +_ZNK11__sanitizer14StackDepotNode4loadEj T _ZNK11__sanitizer16Addr2LineProcess18ReachedEndOfOutputEPKcm T +_ZNK11__sanitizer16StackDepotHandle9use_countEv T _ZNK11__sanitizer18SuppressionContext13SuppressionAtEm T _ZNK11__sanitizer18SuppressionContext16SuppressionCountEv T _ZNK11__sanitizer18SuppressionContext18HasSuppressionTypeEPKc T +__gnu_Unwind_Find_exidx T +__sancov_lowest_stack V +__sanitizer_acquire_crash_state T +__sanitizer_cov_8bit_counters_init W +__sanitizer_cov_bool_flag_init W +__sanitizer_cov_dump T +__sanitizer_cov_pcs_init W +__sanitizer_cov_reset T +__sanitizer_cov_trace_cmp W +__sanitizer_cov_trace_cmp1 W +__sanitizer_cov_trace_cmp2 W +__sanitizer_cov_trace_cmp4 W +__sanitizer_cov_trace_cmp8 W +__sanitizer_cov_trace_const_cmp1 W +__sanitizer_cov_trace_const_cmp2 W +__sanitizer_cov_trace_const_cmp4 W +__sanitizer_cov_trace_const_cmp8 W +__sanitizer_cov_trace_div4 W +__sanitizer_cov_trace_div8 W +__sanitizer_cov_trace_gep W +__sanitizer_cov_trace_pc_guard W +__sanitizer_cov_trace_pc_guard_init W +__sanitizer_cov_trace_pc_indir W +__sanitizer_cov_trace_switch W +__sanitizer_dump_coverage T +__sanitizer_dump_trace_pc_guard_coverage T __sanitizer_get_module_and_offset_for_pc T +__sanitizer_get_report_path T __sanitizer_install_malloc_and_free_hooks T +__sanitizer_on_print W __sanitizer_report_error_summary W __sanitizer_sandbox_on_notify W __sanitizer_set_death_callback T diff --git a/repos/libports/ports/sanitizer.hash b/repos/libports/ports/sanitizer.hash index a456411e1e..84e7c82cf9 100644 --- a/repos/libports/ports/sanitizer.hash +++ b/repos/libports/ports/sanitizer.hash @@ -1 +1 @@ -68b8eb5bfa950adf094fe9e6c579e6d542dd6c63 +b43d7218aef4f321f9d5b83947c5db0ecc9da88f diff --git a/repos/libports/ports/sanitizer.port b/repos/libports/ports/sanitizer.port index 1baafc47be..2733b047d0 100644 --- a/repos/libports/ports/sanitizer.port +++ b/repos/libports/ports/sanitizer.port @@ -1,9 +1,9 @@ LICENSE := LGPL -VERSION := 10.3.0 +VERSION := 12.2.0 DOWNLOADS := sanitizer.archive URL(sanitizer) := ftp://ftp.fu-berlin.de/gnu/gcc/gcc-$(VERSION)/gcc-$(VERSION).tar.xz -SHA(sanitizer) := 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344 +SHA(sanitizer) := e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff DIR(sanitizer) := src/lib/sanitizer SIG(sanitizer) := ${URL(gcc)} KEY(sanitizer) := GNU diff --git a/repos/libports/src/lib/sanitizer/sanitizer.patch b/repos/libports/src/lib/sanitizer/sanitizer.patch index 0b6ca5f449..6766ac451b 100644 --- a/repos/libports/src/lib/sanitizer/sanitizer.patch +++ b/repos/libports/src/lib/sanitizer/sanitizer.patch @@ -4,26 +4,27 @@ From: Christian Prochaska --- - sanitizer_common/sanitizer_genode.cc | 331 ++++++++++++++++++++ + sanitizer_common/sanitizer_genode.cc | 313 ++++++++++++++++++++ sanitizer_common/sanitizer_internal_defs.h | 6 sanitizer_common/sanitizer_platform.h | 4 sanitizer_common/sanitizer_posix.h | 2 sanitizer_common/sanitizer_printf.cpp | 2 + sanitizer_common/sanitizer_stackdepotbase.h | 2 sanitizer_common/sanitizer_stacktrace.h | 2 - sanitizer_common/sanitizer_symbolizer_libcdep.cpp | 10 - + sanitizer_common/sanitizer_symbolizer_libcdep.cpp | 10 + .../sanitizer_symbolizer_posix_libcdep.cpp | 29 +- sanitizer_common/sanitizer_symbolizer_report.cpp | 4 ubsan/ubsan_diag.cpp | 4 ubsan/ubsan_flags.cpp | 6 - 11 files changed, 385 insertions(+), 15 deletions(-) + 12 files changed, 369 insertions(+), 15 deletions(-) create mode 100644 sanitizer_common/sanitizer_genode.cc diff --git a/sanitizer_common/sanitizer_genode.cc b/sanitizer_common/sanitizer_genode.cc new file mode 100644 -index 0000000..03b1740 +index 0000000..78ee830 --- /dev/null +++ b/sanitizer_common/sanitizer_genode.cc -@@ -0,0 +1,335 @@ +@@ -0,0 +1,313 @@ +/* + * \brief Genode-specific functions from sanitizer_common.h + * and sanitizer_libc.h @@ -143,31 +144,6 @@ index 0000000..03b1740 +} + + -+__sanitizer::BlockingMutex::BlockingMutex() -+{ -+ Genode::error("sanitizer: ", __func__, " called"); -+ internal_memset(this, 0, sizeof(*this)); -+} -+ -+ -+void __sanitizer::BlockingMutex::Lock() -+{ -+ Genode::error("sanitizer: ", __func__, " called"); -+} -+ -+ -+void __sanitizer::BlockingMutex::Unlock() -+{ -+ Genode::error("sanitizer: ", __func__, " called"); -+} -+ -+ -+void __sanitizer::BlockingMutex::CheckLocked() -+{ -+ Genode::error("sanitizer: ", __func__, " called"); -+} -+ -+ +uptr __sanitizer::internal_getpid() +{ + return 0; @@ -324,10 +300,13 @@ index 0000000..03b1740 +} + + -+void __sanitizer::SleepForMillis(int millis) -+{ -+ Genode::error("sanitizer: ", __func__, " called"); -+} ++void __sanitizer::InitializePlatformEarly() { } ++ ++ ++/* sanitizer-flags.h */ ++ ++ ++void __sanitizer::InitializePlatformCommonFlags(CommonFlags *cf) {} + + +/* sanitizer_libc.h */ @@ -360,7 +339,7 @@ index 0000000..03b1740 + return false; +} diff --git a/sanitizer_common/sanitizer_internal_defs.h b/sanitizer_common/sanitizer_internal_defs.h -index 0022630..3ca8b9f 100644 +index e97cc9a..b1514c6 100644 --- a/sanitizer_common/sanitizer_internal_defs.h +++ b/sanitizer_common/sanitizer_internal_defs.h @@ -14,6 +14,8 @@ @@ -372,14 +351,14 @@ index 0022630..3ca8b9f 100644 #ifndef SANITIZER_DEBUG # define SANITIZER_DEBUG 0 #endif -@@ -180,13 +182,13 @@ typedef uptr OFF_T; +@@ -187,13 +189,13 @@ typedef uptr OFF_T; typedef u64 OFF64_T; #if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC -typedef uptr operator_new_size_type; +typedef size_t operator_new_size_type; #else - # if SANITIZER_OPENBSD || defined(__s390__) && !defined(__s390x__) + # if defined(__s390__) && !defined(__s390x__) // Special case: 31-bit s390 has unsigned long as size_t. typedef unsigned long operator_new_size_type; # else @@ -389,38 +368,39 @@ index 0022630..3ca8b9f 100644 #endif diff --git a/sanitizer_common/sanitizer_platform.h b/sanitizer_common/sanitizer_platform.h -index c68bfa2..b13d28a 100644 +index 3153de3..790189e 100644 --- a/sanitizer_common/sanitizer_platform.h +++ b/sanitizer_common/sanitizer_platform.h -@@ -12,12 +12,14 @@ +@@ -12,6 +12,7 @@ #ifndef SANITIZER_PLATFORM_H #define SANITIZER_PLATFORM_H +#if 0 #if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \ - !defined(__OpenBSD__) && !defined(__APPLE__) && !defined(_WIN32) && \ - !defined(__Fuchsia__) && !defined(__rtems__) && \ - !(defined(__sun__) && defined(__svr4__)) - # error "This operating system is not supported" + !defined(__APPLE__) && !defined(_WIN32) && !defined(__Fuchsia__) && \ + !(defined(__sun__) && defined(__svr4__)) +@@ -24,6 +25,7 @@ + #if __has_include() && !defined(__ANDROID__) + #include #endif +#endif #if defined(__linux__) # define SANITIZER_LINUX 1 -@@ -112,7 +114,7 @@ +@@ -118,7 +120,7 @@ #define SANITIZER_POSIX \ (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || \ -- SANITIZER_NETBSD || SANITIZER_OPENBSD || SANITIZER_SOLARIS) -+ SANITIZER_NETBSD || SANITIZER_OPENBSD || SANITIZER_SOLARIS || 1) +- SANITIZER_NETBSD || SANITIZER_SOLARIS) ++ SANITIZER_NETBSD || SANITIZER_SOLARIS || 1) #if __LP64__ || defined(_WIN64) # define SANITIZER_WORDSIZE 64 diff --git a/sanitizer_common/sanitizer_posix.h b/sanitizer_common/sanitizer_posix.h -index 05fb0f6..ff76f33 100644 +index f91e26e..3effa89 100644 --- a/sanitizer_common/sanitizer_posix.h +++ b/sanitizer_common/sanitizer_posix.h -@@ -94,9 +94,11 @@ int my_pthread_attr_getstack(void *attr, void **addr, uptr *size); +@@ -95,9 +95,11 @@ int my_pthread_attr_getstack(void *attr, void **addr, uptr *size); // A routine named real_sigaction() must be implemented by each sanitizer in // order for internal_sigaction() to bypass interceptors. int internal_sigaction(int signum, const void *act, void *oldact); @@ -433,7 +413,7 @@ index 05fb0f6..ff76f33 100644 uptr internal_execve(const char *filename, char *const argv[], char *const envp[]); diff --git a/sanitizer_common/sanitizer_printf.cpp b/sanitizer_common/sanitizer_printf.cpp -index a032787..fdf21c9 100644 +index 79aee8b..b81ba31 100644 --- a/sanitizer_common/sanitizer_printf.cpp +++ b/sanitizer_common/sanitizer_printf.cpp @@ -17,7 +17,9 @@ @@ -446,13 +426,27 @@ index a032787..fdf21c9 100644 #include #if SANITIZER_WINDOWS && defined(_MSC_VER) && _MSC_VER < 1800 && \ +diff --git a/sanitizer_common/sanitizer_stackdepotbase.h b/sanitizer_common/sanitizer_stackdepotbase.h +index 96d1ddc..b79a773 100644 +--- a/sanitizer_common/sanitizer_stackdepotbase.h ++++ b/sanitizer_common/sanitizer_stackdepotbase.h +@@ -13,7 +13,9 @@ + #ifndef SANITIZER_STACKDEPOTBASE_H + #define SANITIZER_STACKDEPOTBASE_H + ++#if 0 + #include ++#endif + + #include "sanitizer_atomic.h" + #include "sanitizer_flat_map.h" diff --git a/sanitizer_common/sanitizer_stacktrace.h b/sanitizer_common/sanitizer_stacktrace.h -index f1f29e9..fe310f7 100644 +index 11c6154..eb43232 100644 --- a/sanitizer_common/sanitizer_stacktrace.h +++ b/sanitizer_common/sanitizer_stacktrace.h @@ -36,7 +36,7 @@ static const u32 kStackTraceMax = 256; - #if SANITIZER_MAC || SANITIZER_OPENBSD || SANITIZER_RTEMS - # define SANITIZER_CAN_SLOW_UNWIND 0 + #if SANITIZER_MAC + # define SANITIZER_CAN_SLOW_UNWIND 0 #else -# define SANITIZER_CAN_SLOW_UNWIND 1 +# define SANITIZER_CAN_SLOW_UNWIND 0 @@ -460,7 +454,7 @@ index f1f29e9..fe310f7 100644 struct StackTrace { diff --git a/sanitizer_common/sanitizer_symbolizer_libcdep.cpp b/sanitizer_common/sanitizer_symbolizer_libcdep.cpp -index 3b19a68..3f0f40e 100644 +index 3fc994f..0b4ffc8 100644 --- a/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +++ b/sanitizer_common/sanitizer_symbolizer_libcdep.cpp @@ -10,6 +10,8 @@ @@ -471,8 +465,8 @@ index 3b19a68..3f0f40e 100644 + #include "sanitizer_allocator_internal.h" #include "sanitizer_internal_defs.h" - #include "sanitizer_symbolizer_internal.h" -@@ -189,7 +191,7 @@ void Symbolizer::RefreshModules() { + #include "sanitizer_platform.h" +@@ -190,7 +192,7 @@ void Symbolizer::RefreshModules() { RAW_CHECK(modules_.size() > 0); modules_fresh_ = true; } @@ -481,7 +475,7 @@ index 3b19a68..3f0f40e 100644 static const LoadedModule *SearchForModule(const ListOfModules &modules, uptr address) { for (uptr i = 0; i < modules.size(); i++) { -@@ -199,8 +201,11 @@ static const LoadedModule *SearchForModule(const ListOfModules &modules, +@@ -200,8 +202,11 @@ static const LoadedModule *SearchForModule(const ListOfModules &modules, } return nullptr; } @@ -494,7 +488,7 @@ index 3b19a68..3f0f40e 100644 bool modules_were_reloaded = false; if (!modules_fresh_) { RefreshModules(); -@@ -224,6 +229,7 @@ const LoadedModule *Symbolizer::FindModuleForAddress(uptr address) { +@@ -225,6 +230,7 @@ const LoadedModule *Symbolizer::FindModuleForAddress(uptr address) { module = SearchForModule(fallback_modules_, address); } return module; @@ -503,7 +497,7 @@ index 3b19a68..3f0f40e 100644 // For now we assume the following protocol: diff --git a/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp b/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp -index c123ecb..be6873c 100644 +index 4cd4b46..ffcc55e 100644 --- a/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +++ b/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp @@ -11,6 +11,9 @@ @@ -540,7 +534,7 @@ index c123ecb..be6873c 100644 // As of now, there are no headers for the Swift runtime. Once they are // present, we will weakly link since we do not require Swift runtime to be // linked. -@@ -90,14 +95,16 @@ const char *DemangleSwift(const char *name) { +@@ -83,14 +88,16 @@ const char *DemangleSwift(const char *name) { return nullptr; } @@ -559,7 +553,7 @@ index c123ecb..be6873c 100644 static bool CreateTwoHighNumberedPipes(int *infd_, int *outfd_) { int *infd = NULL; int *outfd = NULL; -@@ -137,8 +144,12 @@ static bool CreateTwoHighNumberedPipes(int *infd_, int *outfd_) { +@@ -130,8 +137,12 @@ static bool CreateTwoHighNumberedPipes(int *infd_, int *outfd_) { outfd_[1] = outfd[1]; return true; } @@ -573,23 +567,23 @@ index c123ecb..be6873c 100644 if (!FileExists(path_)) { if (!reported_invalid_path_) { Report("WARNING: invalid path to external symbolizer!\n"); -@@ -196,6 +207,7 @@ bool SymbolizerProcess::StartSymbolizerSubprocess() { +@@ -199,6 +210,7 @@ bool SymbolizerProcess::StartSymbolizerSubprocess() { } return true; +#endif } - class Addr2LineProcess : public SymbolizerProcess { -@@ -393,6 +405,7 @@ const char *Symbolizer::PlatformDemangle(const char *name) { + class Addr2LineProcess final : public SymbolizerProcess { +@@ -398,6 +410,7 @@ const char *Symbolizer::PlatformDemangle(const char *name) { return DemangleSwiftAndCXX(name); } +#if 0 static SymbolizerTool *ChooseExternalSymbolizer(LowLevelAllocator *allocator) { const char *path = common_flags()->external_symbolizer_path; - const char *binary_name = path ? StripModuleName(path) : ""; -@@ -440,7 +453,7 @@ static SymbolizerTool *ChooseExternalSymbolizer(LowLevelAllocator *allocator) { + +@@ -454,7 +467,7 @@ static SymbolizerTool *ChooseExternalSymbolizer(LowLevelAllocator *allocator) { } return nullptr; } @@ -598,7 +592,7 @@ index c123ecb..be6873c 100644 static void ChooseSymbolizerTools(IntrusiveList *list, LowLevelAllocator *allocator) { if (!common_flags()->symbolize) { -@@ -459,11 +472,11 @@ static void ChooseSymbolizerTools(IntrusiveList *list, +@@ -473,11 +486,11 @@ static void ChooseSymbolizerTools(IntrusiveList *list, list->push_back(tool); return; } @@ -612,10 +606,10 @@ index c123ecb..be6873c 100644 #if SANITIZER_MAC VReport(2, "Using dladdr symbolizer.\n"); list->push_back(new(*allocator) DlAddrSymbolizer()); -@@ -479,7 +492,9 @@ Symbolizer *Symbolizer::PlatformInit() { +@@ -493,7 +506,9 @@ Symbolizer *Symbolizer::PlatformInit() { void Symbolizer::LateInitialize() { - Symbolizer::GetOrInit(); + Symbolizer::GetOrInit()->LateInitializeTools(); +#if 0 InitializeSwiftDemangler(); +#endif @@ -623,7 +617,7 @@ index c123ecb..be6873c 100644 } // namespace __sanitizer diff --git a/sanitizer_common/sanitizer_symbolizer_report.cpp b/sanitizer_common/sanitizer_symbolizer_report.cpp -index c26724c..fb91e96 100644 +index 869c893..8ff354b 100644 --- a/sanitizer_common/sanitizer_symbolizer_report.cpp +++ b/sanitizer_common/sanitizer_symbolizer_report.cpp @@ -20,7 +20,7 @@ @@ -635,17 +629,17 @@ index c26724c..fb91e96 100644 # include "sanitizer_posix.h" # include #endif -@@ -88,7 +88,7 @@ void ReportErrorSummary(const char *error_type, const StackTrace *stack, +@@ -89,7 +89,7 @@ void ReportErrorSummary(const char *error_type, const StackTrace *stack, } - void ReportMmapWriteExec(int prot) { + void ReportMmapWriteExec(int prot, int flags) { -#if SANITIZER_POSIX && (!SANITIZER_GO && !SANITIZER_ANDROID) +#if SANITIZER_POSIX && (!SANITIZER_GO && !SANITIZER_ANDROID) && 0 - if ((prot & (PROT_WRITE | PROT_EXEC)) != (PROT_WRITE | PROT_EXEC)) + int pflags = (PROT_WRITE | PROT_EXEC); + if ((prot & pflags) != pflags) return; - diff --git a/ubsan/ubsan_diag.cpp b/ubsan/ubsan_diag.cpp -index 1b2828d..8605700 100644 +index 8de51bc..f34fed2 100644 --- a/ubsan/ubsan_diag.cpp +++ b/ubsan/ubsan_diag.cpp @@ -22,7 +22,9 @@ @@ -669,7 +663,7 @@ index 1b2828d..8605700 100644 Buffer->append("%s", FloatBuffer); break; diff --git a/ubsan/ubsan_flags.cpp b/ubsan/ubsan_flags.cpp -index 80de2a6..913fd4b 100644 +index 9a66bd3..330b0cc 100644 --- a/ubsan/ubsan_flags.cpp +++ b/ubsan/ubsan_flags.cpp @@ -17,7 +17,9 @@ @@ -682,7 +676,7 @@ index 80de2a6..913fd4b 100644 namespace __ubsan { -@@ -30,7 +32,11 @@ static const char *GetFlag(const char *flag) { +@@ -26,7 +28,11 @@ static const char *GetFlag(const char *flag) { if (SANITIZER_CAN_USE_PREINIT_ARRAY) { return GetEnv(flag); } else {