8000 [BUG]: EpollBackend.h: error: type struct EpollBackend violates the C++ One Definition Rule [-Werror=odr] · Issue #2387 · facebook/folly · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[BUG]: EpollBackend.h: error: type struct EpollBackend violates the C++ One Definition Rule [-Werror=odr] #2387

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Kangie opened this issue Feb 20, 2025 · 3 comments

Comments

@Kangie
Copy link
Kangie commented Feb 20, 2025

Building with diagnostic flags enabled I encountered the following:

: && /usr/bin/x86_64-pc-linux-gnu-g++ -fPIC -march=native -O2 -pipe -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -fdiagnostics-color=always -frecord-gcc-switches  -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs   -Wl,--dependency-file=CMakeFiles/folly.dir/link.d -shared -Wl,-soname,libfolly.so.0.58.0-dev -o libfolly.so.0.58.0-dev CMakeFiles/folly_base.dir/folly/CancellationToken.cpp.o CMakeFiles/folly_base.dir/folly/ClockGettimeWrappers.cpp.o CMakeFiles/folly_base.dir/folly/Conv.cpp.o CMakeFiles/folly_base.dir/folly/Demangle.cpp.o CMakeFiles/folly_base.dir/folly/ExceptionString.cpp.o CMakeFiles/folly_base.dir/folly/ExceptionWrapper.cpp.o CMakeFiles/folly_base.dir/folly/Executor.cpp.o CMakeFiles/folly_base.dir/folly/File.cpp.o CMakeFiles/folly_base.dir/folly/FileUtil.cpp.o CMakeFiles/folly_base.dir/folly/Fingerprint.cpp.o CMakeFiles/folly_base.dir/folly/FmtUtility.cpp.o CMakeFiles/folly_base.dir/folly/FollyMemcpy.cpp.o CMakeFiles/folly_base.dir/folly/FollyMemset.cpp.o CMakeFiles/folly_base.dir/folly/Format.cpp.o CMakeFiles/folly_base.dir/folly/GroupVarint.cpp.o CMakeFiles/folly_base.dir/folly/IPAddress.cpp.o CMakeFiles/folly_base.dir/folly/IPAddressV4.cpp.o CMakeFiles/folly_base.dir/folly/IPAddressV6.cpp.o CMakeFiles/folly_base.dir/folly/MacAddress.cpp.o CMakeFiles/folly_base.dir/folly/MicroLock.cpp.o CMakeFiles/folly_base.dir/folly/Random.cpp.o CMakeFiles/folly_base.dir/folly/ScopeGuard.cpp.o CMakeFiles/folly_base.dir/folly/SharedMutex.cpp.o CMakeFiles/folly_base.dir/folly/Singleton.cpp.o CMakeFiles/folly_base.dir/folly/SingletonThreadLocal.cpp.o CMakeFiles/folly_base.dir/folly/SocketAddress.cpp.o CMakeFiles/folly_base.dir/folly/String.cpp.o CMakeFiles/folly_base.dir/folly/Subprocess.cpp.o CMakeFiles/folly_base.dir/folly/TimeoutQueue.cpp.o CMakeFiles/folly_base.dir/folly/Try.cpp.o CMakeFiles/folly_base.dir/folly/Unicode.cpp.o CMakeFiles/folly_base.dir/folly/Uri.cpp.o CMakeFiles/folly_base.dir/folly/memcpy_select_aarch64.cpp.o CMakeFiles/folly_base.dir/folly/memset_select_aarch64.cpp.o CMakeFiles/folly_base.dir/folly/algorithm/simd/Contains.cpp.o CMakeFiles/folly_base.dir/folly/channels/MaxConcurrentRateLimiter.cpp.o CMakeFiles/folly_base.dir/folly/cli/NestedCommandLineApp.cpp.o CMakeFiles/folly_base.dir/folly/cli/ProgramOptions.cpp.o CMakeFiles/folly_base.dir/folly/compression/Compression.cpp.o CMakeFiles/folly_base.dir/folly/compression/CompressionContextPoolSingletons.cpp.o CMakeFiles/folly_base.dir/folly/compression/QuotientMultiSet.cpp.o CMakeFiles/folly_base.dir/folly/compression/Select64.cpp.o CMakeFiles/folly_base.dir/folly/compression/Zlib.cpp.o CMakeFiles/folly_base.dir/folly/compression/Zstd.cpp.o CMakeFiles/folly_base.dir/folly/concurrency/CacheLocality.cpp.o CMakeFiles/folly_base.dir/folly/concurrency/DeadlockDetector.cpp.o CMakeFiles/folly_base.dir/folly/concurrency/ProcessLocalUniqueId.cpp.o CMakeFiles/folly_base.dir/folly/concurrency/memory/AtomicReadMostlyMainPtr.cpp.o CMakeFiles/folly_base.dir/folly/container/RegexMatchCache.cpp.o CMakeFiles/folly_base.dir/folly/container/detail/F14Table.cpp.o CMakeFiles/folly_base.dir/folly/coro/Baton.cpp.o CMakeFiles/folly_base.dir/folly/coro/Mutex.cpp.o CMakeFiles/folly_base.dir/folly/coro/SharedMutex.cpp.o CMakeFiles/folly_base.dir/folly/coro/detail/Malloc.cpp.o CMakeFiles/folly_base.dir/folly/crypto/Blake2xb.cpp.o CMakeFiles/folly_base.dir/folly/crypto/LtHash.cpp.o CMakeFiles/folly_base.dir/folly/crypto/detail/MathOperation_AVX2.cpp.o CMakeFiles/folly_base.dir/folly/crypto/detail/MathOperation_SSE2.cpp.o CMakeFiles/folly_base.dir/folly/crypto/detail/MathOperation_Simple.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/ExceptionCounterLib.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/ExceptionStackTraceLib.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/ExceptionTracer.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/ExceptionTracerLib.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/SmartExceptionStackTraceHooks.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/SmartExceptionTracer.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/SmartExceptionTracerSingleton.cpp.o CMakeFiles/folly_base.dir/folly/debugging/exception_tracer/StackTrace.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/Dwarf.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/DwarfImpl.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/DwarfLineNumberVM.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/DwarfSection.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/DwarfUtil.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/Elf.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/ElfCache.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/LineReader.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/SignalHandler.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/StackTrace.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/SymbolizePrinter.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/SymbolizedFrame.cpp.o CMakeFiles/folly_base.dir/folly/debugging/symbolizer/Symbolizer.cpp.o CMakeFiles/folly_base.dir/folly/detail/AsyncTrace.cpp.o CMakeFiles/folly_base.dir/folly/detail/FileUtilDetail.cpp.o CMakeFiles/folly_base.dir/folly/detail/Futex.cpp.o CMakeFiles/folly_base.dir/folly/detail/IPAddress.cpp.o CMakeFiles/folly_base.dir/folly/detail/MemoryIdler.cpp.o CMakeFiles/folly_base.dir/folly/detail/PerfScoped.cpp.o CMakeFiles/folly_base.dir/folly/detail/RangeCommon.cpp.o CMakeFiles/folly_base.dir/folly/detail/RangeSimd.cpp.o CMakeFiles/folly_base.dir/folly/detail/RangeSse42.cpp.o CMakeFiles/folly_base.dir/folly/detail/SimpleSimdStringUtils.cpp.o CMakeFiles/folly_base.dir/folly/detail/SocketFastOpen.cpp.o CMakeFiles/folly_base.dir/folly/detail/SplitStringSimd.cpp.o CMakeFiles/folly_base.dir/folly/detail/Sse.cpp.o CMakeFiles/folly_base.dir/folly/detail/StaticSingletonManager.cpp.o CMakeFiles/folly_base.dir/folly/detail/ThreadLocalDetail.cpp.o CMakeFiles/folly_base.dir/folly/detail/TrapOnAvx512.cpp.o CMakeFiles/folly_base.dir/folly/detail/UniqueInstance.cpp.o CMakeFiles/folly_base.dir/folly/detail/base64_detail/Base64Api.cpp.o CMakeFiles/folly_base.dir/folly/detail/base64_detail/Base64SWAR.cpp.o CMakeFiles/folly_base.dir/folly/detail/base64_detail/Base64_SSE4_2.cpp.o CMakeFiles/folly_base.dir/folly/detail/thread_local_globals.cpp.o CMakeFiles/folly_base.dir/folly/executors/CPUThreadPoolExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/Codel.cpp.o CMakeFiles/folly_base.dir/folly/executors/EDFThreadPoolExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/ExecutionObserver.cpp.o CMakeFiles/folly_base.dir/folly/executors/ExecutorWithPriority.cpp.o CMakeFiles/folly_base.dir/folly/executors/FunctionScheduler.cpp.o CMakeFiles/folly_base.dir/folly/executors/GlobalExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/GlobalThreadPoolList.cpp.o CMakeFiles/folly_base.dir/folly/executors/IOThreadPoolDeadlockDetectorObserver.cpp.o CMakeFiles/folly_base.dir/folly/executors/IOThreadPoolExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/InlineExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/ManualExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/QueueObserver.cpp.o CMakeFiles/folly_base.dir/folly/executors/QueuedImmediateExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/SoftRealTimeExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/StrandExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/ThreadPoolExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/ThreadedExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/ThreadedRepeatingFunctionRunner.cpp.o CMakeFiles/folly_base.dir/folly/executors/TimedDrivableExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/TimekeeperScheduledExecutor.cpp.o CMakeFiles/folly_base.dir/folly/executors/thread_factory/PriorityThreadFactory.cpp.o CMakeFiles/folly_base.dir/folly/ext/buck2/test_ext.cpp.o CMakeFiles/folly_base.dir/folly/ext/test_ext.cpp.o CMakeFiles/folly_base.dir/folly/external/farmhash/farmhash.cpp.o CMakeFiles/folly_base.dir/folly/external/fast-crc32/avx512_crc32c_v8s3x4.cpp.o CMakeFiles/folly_base.dir/folly/external/fast-crc32/neon_crc32c_v3s4x2e_v2.cpp.o CMakeFiles/folly_base.dir/folly/external/fast-crc32/neon_eor3_crc32c_v8s2x4_s3.cpp.o CMakeFiles/folly_base.dir/folly/external/fast-crc32/sse_crc32c_v8s3x3.cpp.o CMakeFiles/folly_base.dir/folly/external/nvidia/detail/RangeSve2.cpp.o CMakeFiles/folly_base.dir/folly/external/nvidia/hash/Checksum.cpp.o CMakeFiles/folly_base.dir/folly/external/nvidia/hash/detail/Crc32cDetail.cpp.o CMakeFiles/folly_base.dir/folly/fibers/BatchSemaphore.cpp.o CMakeFiles/folly_base.dir/folly/fibers/Baton.cpp.o CMakeFiles/folly_base.dir/folly/fibers/Fiber.cpp.o CMakeFiles/folly_base.dir/folly/fibers/FiberManager.cpp.o CMakeFiles/folly_base.dir/folly/fibers/GuardPageAllocator.cpp.o CMakeFiles/folly_base.dir/folly/fibers/Semaphore.cpp.o CMakeFiles/folly_base.dir/folly/fibers/SemaphoreBase.cpp.o CMakeFiles/folly_base.dir/folly/fibers/SimpleLoopController.cpp.o CMakeFiles/folly_base.dir/folly/fibers/async/Async.cpp.o CMakeFiles/folly_base.dir/folly/fibers/detail/AtomicBatchDispatcher.cpp.o CMakeFiles/folly_base.dir/folly/futures/Barrier.cpp.o CMakeFiles/folly_base.dir/folly/futures/Future.cpp.o CMakeFiles/folly_base.dir/folly/futures/HeapTimekeeper.cpp.o CMakeFiles/folly_base.dir/folly/futures/ManualTimekeeper.cpp.o CMakeFiles/folly_base.dir/folly/futures/Promise.cpp.o CMakeFiles/folly_base.dir/folly/futures/SharedPromise.cpp.o CMakeFiles/folly_base.dir/folly/futures/ThreadWheelTimekeeper.cpp.o CMakeFiles/folly_base.dir/folly/futures/detail/Core.cpp.o CMakeFiles/folly_base.dir/folly/hash/Checksum.cpp.o CMakeFiles/folly_base.dir/folly/hash/SpookyHashV1.cpp.o CMakeFiles/folly_base.dir/folly/hash/SpookyHashV2.cpp.o CMakeFiles/folly_base.dir/folly/hash/detail/ChecksumDetail.cpp.o CMakeFiles/folly_base.dir/folly/hash/detail/Crc32CombineDetail.cpp.o CMakeFiles/folly_base.dir/folly/hash/detail/Crc32cDetail.cpp.o CMakeFiles/folly_base.dir/folly/init/Init.cpp.o CMakeFiles/folly_base.dir/folly/init/Phase.cpp.o CMakeFiles/folly_base.dir/folly/io/Cursor.cpp.o CMakeFiles/folly_base.dir/folly/io/FsUtil.cpp.o CMakeFiles/folly_base.dir/folly/io/GlobalShutdownSocketSet.cpp.o CMakeFiles/folly_base.dir/folly/io/HugePages.cpp.o CMakeFiles/folly_base.dir/folly/io/IOBuf.cpp.o CMakeFiles/folly_base.dir/folly/io/IOBufIovecBuilder.cpp.o CMakeFiles/folly_base.dir/folly/io/IOBufQueue.cpp.o CMakeFiles/folly_base.dir/folly/io/RecordIO.cpp.o CMakeFiles/folly_base.dir/folly/io/ShutdownSocketSet.cpp.o CMakeFiles/folly_base.dir/folly/io/SocketOptionMap.cpp.o CMakeFiles/folly_base.dir/folly/io/SocketOptionValue.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncBase.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncIO.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncIoUringSocket.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncPipe.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncSSLSocket.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncServerSocket.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncSignalHandler.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncSocket.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncSocketException.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncSocketTransport.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncTimeout.cpp.o CMakeFiles/folly_base.dir/folly/io/async/AsyncUDPSocket.cpp.o CMakeFiles/folly_base.dir/folly/io/async/DelayedDestruction.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EpollBackend.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EventBase.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EventBaseBackendBase.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EventBaseLocal.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EventBaseManager.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EventBasePoller.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EventBaseThread.cpp.o CMakeFiles/folly_base.dir/folly/io/async/EventHandler.cpp.o CMakeFiles/folly_base.dir/folly/io/async/HHWheelTimer.cpp.o CMakeFiles/folly_base.dir/folly/io/async/IoUring.cpp.o CMakeFiles/folly_base.dir/folly/io/async/IoUringBackend.cpp.o CMakeFiles/folly_base.dir/folly/io/async/IoUringEvent.cpp.o CMakeFiles/folly_base.dir/folly/io/async/IoUringEventBaseLocal.cpp.o CMakeFiles/folly_base.dir/folly/io/async/IoUringProvidedBufferRing.cpp.o CMakeFiles/folly_base.dir/folly/io/async/MuxIOThreadPoolExecutor.cpp.o CMakeFiles/folly_base.dir/folly/io/async/PasswordInFile.cpp.o CMakeFiles/folly_base.dir/folly/io/async/Request.cpp.o CMakeFiles/folly_base.dir/folly/io/async/SSLContext.cpp.o CMakeFiles/folly_base.dir/folly/io/async/SSLOptions.cpp.o CMakeFiles/folly_base.dir/folly/io/async/STTimerFDTimeoutManager.cpp.o CMakeFiles/folly_base.dir/folly/io/async/ScopedEventBaseThread.cpp.o CMakeFiles/folly_base.dir/folly/io/async/SimpleAsyncIO.cpp.o CMakeFiles/folly_base.dir/folly/io/async/TerminateCancellationToken.cpp.o CMakeFiles/folly_base.dir/folly/io/async/TimeoutManager.cpp.o CMakeFiles/folly_base.dir/folly/io/async/TimerFD.cpp.o CMakeFiles/folly_base.dir/folly/io/async/TimerFDTimeoutManager.cpp.o CMakeFiles/folly_base.dir/folly/io/async/VirtualEventBase.cpp.o CMakeFiles/folly_base.dir/folly/io/async/fdsock/AsyncFdSocket.cpp.o CMakeFiles/folly_base.dir/folly/io/async/fdsock/SocketFds.cpp.o CMakeFiles/folly_base.dir/folly/io/async/ssl/OpenSSLUtils.cpp.o CMakeFiles/folly_base.dir/folly/io/async/ssl/SSLErrors.cpp.o CMakeFiles/folly_base.dir/folly/io/coro/ServerSocket.cpp.o CMakeFiles/folly_base.dir/folly/io/coro/Transport.cpp.o CMakeFiles/folly_base.dir/folly/json/DynamicParser.cpp.o CMakeFiles/folly_base.dir/folly/json/JSONSchema.cpp.o CMakeFiles/folly_base.dir/folly/json/JsonTestUtil.cpp.o CMakeFiles/folly_base.dir/folly/json/bser/Dump.cpp.o CMakeFiles/folly_base.dir/folly/json/bser/Load.cpp.o CMakeFiles/folly_base.dir/folly/json/dynamic.cpp.o CMakeFiles/folly_base.dir/folly/json/json.cpp.o CMakeFiles/folly_base.dir/folly/json/json_patch.cpp.o CMakeFiles/folly_base.dir/folly/json/json_pointer.cpp.o CMakeFiles/folly_base.dir/folly/lang/CString.cpp.o CMakeFiles/folly_base.dir/folly/lang/Exception.cpp.o CMakeFiles/folly_base.dir/folly/lang/SafeAssert.cpp.o CMakeFiles/folly_base.dir/folly/lang/ToAscii.cpp.o CMakeFiles/folly_base.dir/folly/lang/UncaughtExceptions.cpp.o CMakeFiles/folly_base.dir/folly/logging/AsyncFileWriter.cpp.o CMakeFiles/folly_base.dir/folly/logging/AsyncLogWriter.cpp.o CMakeFiles/folly_base.dir/folly/logging/BridgeFromGoogleLogging.cpp.o CMakeFiles/folly_base.dir/folly/logging/CustomLogFormatter.cpp.o CMakeFiles/folly_base.dir/folly/logging/FileHandlerFactory.cpp.o CMakeFiles/folly_base.dir/folly/logging/FileWriterFactory.cpp.o CMakeFiles/folly_base.dir/folly/logging/GlogStyleFormatter.cpp.o CMakeFiles/folly_base.dir/folly/logging/ImmediateFileWriter.cpp.o CMakeFiles/folly_base.dir/folly/logging/Init.cpp.o CMakeFiles/folly_base.dir/folly/logging/InitWeak.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogCategory.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogCategoryConfig.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogConfig.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogConfigParser.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogHandlerConfig.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogLevel.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogMessage.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogName.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogStream.cpp.o CMakeFiles/folly_base.dir/folly/logging/LogStreamProcessor.cpp.o CMakeFiles/folly_base.dir/folly/logging/Logger.cpp.o CMakeFiles/folly_base.dir/folly/logging/LoggerDB.cpp.o CMakeFiles/folly_base.dir/folly/logging/ObjectToString.cpp.o CMakeFiles/folly_base.dir/folly/logging/RateLimiter.cpp.o CMakeFiles/folly_base.dir/folly/logging/StandardLogHandler.cpp.o CMakeFiles/folly_base.dir/folly/logging/StandardLogHandlerFactory.cpp.o CMakeFiles/folly_base.dir/folly/logging/StreamHandlerFactory.cpp.o CMakeFiles/folly_base.dir/folly/logging/xlog.cpp.o CMakeFiles/folly_base.dir/folly/memory/JemallocHugePageAllocator.cpp.o CMakeFiles/folly_base.dir/folly/memory/JemallocNodumpAllocator.cpp.o CMakeFiles/folly_base.dir/folly/memory/MallctlHelper.cpp.o CMakeFiles/folly_base.dir/folly/memory/ReentrantAllocator.cpp.o CMakeFiles/folly_base.dir/folly/memory/SanitizeAddress.cpp.o CMakeFiles/folly_base.dir/folly/memory/SanitizeLeak.cpp.o CMakeFiles/folly_base.dir/folly/memory/ThreadCachedArena.cpp.o CMakeFiles/folly_base.dir/folly/memory/detail/MallocImpl.cpp.o CMakeFiles/folly_base.dir/folly/net/NetOps.cpp.o CMakeFiles/folly_base.dir/folly/net/NetOpsDispatcher.cpp.o CMakeFiles/folly_base.dir/folly/net/TcpInfo.cpp.o CMakeFiles/folly_base.dir/folly/net/TcpInfoDispatcher.cpp.o CMakeFiles/folly_base.dir/folly/net/detail/SocketFileDescriptorMap.cpp.o CMakeFiles/folly_base.dir/folly/observer/detail/Core.cpp.o CMakeFiles/folly_base.dir/folly/observer/detail/ObserverManager.cpp.o CMakeFiles/folly_base.dir/folly/portability/Builtins.cpp.o CMakeFiles/folly_base.dir/folly/portability/Dirent.cpp.o CMakeFiles/folly_base.dir/folly/portability/Fcntl.cpp.o CMakeFiles/folly_base.dir/folly/portability/Filesystem.cpp.o CMakeFiles/folly_base.dir/folly/portability/Libgen.cpp.o CMakeFiles/folly_base.dir/folly/portability/Malloc.cpp.o CMakeFiles/folly_base.dir/folly/portability/OpenSSL.cpp.o CMakeFiles/folly_base.dir/folly/portability/PThread.cpp.o CMakeFiles/folly_base.dir/folly/portability/Sched.cpp.o CMakeFiles/folly_base.dir/folly/portability/Sockets.cpp.o CMakeFiles/folly_base.dir/folly/portability/Stdio.cpp.o CMakeFiles/folly_base.dir/folly/portability/Stdlib.cpp.o CMakeFiles/folly_base.dir/folly/portability/String.cpp.o CMakeFiles/folly_base.dir/folly/portability/SysFile.cpp.o CMakeFiles/folly_base.dir/folly/portability/SysMembarrier.cpp.o CMakeFiles/folly_base.dir/folly/portability/SysMman.cpp.o CMakeFiles/folly_base.dir/folly/portability/SysResource.cpp.o CMakeFiles/folly_base.dir/folly/portability/SysStat.cpp.o CMakeFiles/folly_base.dir/folly/portability/SysTime.cpp.o CMakeFiles/folly_base.dir/folly/portability/SysUio.cpp.o CMakeFiles/folly_base.dir/folly/portability/Time.cpp.o CMakeFiles/folly_base.dir/folly/portability/Unistd.cpp.o CMakeFiles/folly_base.dir/folly/settings/Immutables.cpp.o CMakeFiles/folly_base.dir/folly/settings/Settings.cpp.o CMakeFiles/folly_base.dir/folly/settings/Types.cpp.o CMakeFiles/folly_base.dir/folly/ssl/OpenSSLCertUtils.cpp.o CMakeFiles/folly_base.dir/folly/ssl/OpenSSLHash.cpp.o CMakeFiles/folly_base.dir/folly/ssl/OpenSSLKeyUtils.cpp.o CMakeFiles/folly_base.dir/folly/ssl/PasswordCollector.cpp.o CMakeFiles/folly_base.dir/folly/ssl/SSLSessionManager.cpp.o CMakeFiles/folly_base.dir/folly/ssl/detail/OpenSSLSession.cpp.o CMakeFiles/folly_base.dir/folly/stats/QuantileEstimator.cpp.o CMakeFiles/folly_base.dir/folly/stats/TDigest.cpp.o CMakeFiles/folly_base.dir/folly/stats/detail/DoubleRadixSort.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/AsymmetricThreadFence.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/AtomicNotification.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/DistributedMutex.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/Hazptr.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/HazptrDomain.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/HazptrThreadPoolExecutor.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/ParkingLot.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/Rcu.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/SanitizeThread.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/WaitOptions.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/detail/Hardware.cpp.o CMakeFiles/folly_base.dir/folly/synchronization/detail/Sleeper.cpp.o CMakeFiles/folly_base.dir/folly/system/AtFork.cpp.o CMakeFiles/folly_base.dir/folly/system/EnvUtil.cpp.o CMakeFiles/folly_base.dir/folly/system/HardwareConcurrency.cpp.o CMakeFiles/folly_base.dir/folly/system/MemoryMapping.cpp.o CMakeFiles/folly_base.dir/folly/system/Pid.cpp.o CMakeFiles/folly_base.dir/folly/system/Shell.cpp.o CMakeFiles/folly_base.dir/folly/system/ThreadId.cpp.o CMakeFiles/folly_base.dir/folly/system/ThreadName.cpp.o CMakeFiles/folly_base.dir/folly/testing/TestUtil.cpp.o CMakeFiles/folly_base.dir/folly/tracing/AsyncStack.cpp.o CMakeFiles/folly_base.dir/folly/io/async/test/ScopedBoundPort.cpp.o CMakeFiles/folly_base.dir/folly/io/async/test/SocketPair.cpp.o CMakeFiles/folly_base.dir/folly/io/async/test/TimeUtil.cpp.o CMakeFiles/folly_base.dir/folly/memcpy.S.o  /usr/lib64/libfmt.so.9.1.0  /usr/lib64/libboost_context.so.1.86.0  /usr/lib64/libboost_filesystem.so.1.86.0  /usr/lib64/libboost_atomic.so.1.86.0  /usr/lib64/libboost_program_options.so.1.86.0  /usr/lib64/libboost_regex.so.1.86.0  /usr/lib64/libboost_system.so.1.86.0  /usr/lib64/libboost_thread.so.1.86.0  -ldouble-conversion  /usr/lib64/libgflags.so.2.2.2  -lglog  -levent  -lz  -lssl  -lcrypto  -lbz2  -llzma  -llz4  -lzstd  -lsnappy  -Wl,-Bstatic  -liberty  -Wl,-Bdynamic  -laio  -luring  -lsodium  -ldl  -lunwind && :
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:34: error: type ‘struct EpollBackend’ violates the C++ One Definition Rule [-Werror=odr]
   34 | class EpollBackend : public EventBaseBackendBase {
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:34: note: a different type is defined in another translation unit
   34 | class EpollBackend : public EventBaseBackendBase {
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:104: note: the first difference of corresponding definitions is field ‘events_’
  104 |   std::vector<struct epoll_event> events_; // Cache allocation.
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:104: note: a field of same name but different type is defined in another translation unit
  104 |   std::vector<struct epoll_event> events_; // Cache allocation.
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_vector.h:428: note: type name ‘std::vector<epoll_event, std::allocator<epoll_event> >’ should match type name ‘std::vector<folly::epoll_event, std::allocator<folly::epoll_event> >’
  428 |     class vector : protected _Vector_base<_Tp, _Alloc>
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:45: error: type of ‘__ct_comp ’ does not match original declaration [-Werror=lto-type-mismatch]
   45 |   explicit EpollBackend(Options options);
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.cpp:176: note: ‘__ct_comp ’ was previously declared here
  176 | EpollBackend::EpollBackend(Options options) : options_(options) {
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.cpp:176: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:50: error: type of ‘getPollableFd’ does not match original declaration [-Werror=lto-type-mismatch]
   50 |   int getPollableFd() const override { return epollFd_; }
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:50: note: ‘getPollableFd’ was previously declared here
   50 |   int getPollableFd() const override { return epollFd_; }
/var/tmp/portage/dev-cpp/folly-2025.02.17.00/work/folly-2025.02.17.00/folly/io/async/EpollBackend.h:50: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used
lto1: some warnings being treated as errors
lto-wrapper: fatal error: /usr/bin/x86_64-pc-linux-gnu-g++ returned 1 exit status
compilation terminated.
/usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status

First reported for Gentoo on 2024.11.04.00, reproduced on 2025.02.17.00

Build Log

See also: https://bugs.gentoo.org/949607

@sin-ack
Copy link
sin-ack commented Apr 21, 2025
8000

Can no longer reproduce with gcc 15.0.1_pre20250418 on Folly 2025.04.14.00.

@Kangie
Copy link
Author
Kangie commented May 13, 2025

It's still an issue; you need to build with appropriate flags for LTO and warnings -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing: folly-2025.02.17.00:20250220-033225.log

@sin-ack
Copy link
sin-ack commented May 14, 2025

Yeah, sorry. Seems like -flto is not in the default set of Gentoo options, so I missed this (should've looked more closely). I'll take another look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
0