Skip to content
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

folly: update to 2022.08.08.00, add fixes for gcc and older OS #15689

Merged
merged 2 commits into from Aug 21, 2022

Conversation

barracuda156
Copy link
Contributor

@barracuda156 barracuda156 commented Aug 10, 2022

Description

This PR:

  1. Updates the port to 2022.08.08.00.
  2. Adds fixes for building with GCC and corrects portfile to that end.
  3. Fixes the build for PPC and possibly older Intel.
  4. TCP provisionally fixed: no more excluding files from the build.
Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 10.6.8 Server
Xcode 3.2.6

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL?
  • checked your Portfile with port lint --nitpick?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?

@barracuda156
Copy link
Contributor Author

P. S. I wanted to make sure updated port builds fine on new OSs, but please give me some time to fix PPC build.

@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 10, 2022

As of now, three problems have been discovered, as long as PPC goes:

  1. In some cases BE is unsupported. There are maybe 3–4 such instances in the source code, example: error: static assertion failed: Big endian requires a redesigned table facebook/folly#1834 (specific file can be excluded from the build via CMakeLists, like it is done in some other cases).
  2. F_DUPFD_CLOEXEC is undeclared: File.cpp:124:23: error: 'F_DUPFD_CLOEXEC' was not declared in this scope; did you mean 'FD_CLOEXEC'? facebook/folly#1833 (possibly fixed with my patch).
  3. Multiple TCP-related errors in folly/net: Multiple errors in folly/net/TcpInfo when building with gcc12 for ppc facebook/folly#1835

I do not have a solution for the latter one.

@mascguy @ryandesign @kencu Any ideas in this regard?

@barracuda156 barracuda156 marked this pull request as draft August 10, 2022 19:03
@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 10, 2022

Then, there are problems with Time.cpp:

Details
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp: In function 'int clock_process_cputime(timespec*)':
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:67:3: error: 'mach_task_basic_info' was not declared in this scope; did you mean 'task_basic_info'?
   67 |   mach_task_basic_info task_basic_info;
      |   ^~~~~~~~~~~~~~~~~~~~
      |   task_basic_info
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:68:50: error: 'MACH_TASK_BASIC_INFO_COUNT' was not declared in this scope; did you mean 'TASK_BASIC_INFO_COUNT'?
   68 |   mach_msg_type_number_t task_basic_info_count = MACH_TASK_BASIC_INFO_COUNT;
      |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                  TASK_BASIC_INFO_COUNT
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:71:7: error: 'MACH_TASK_BASIC_INFO' was not declared in this scope; did you mean 'TASK_BASIC_INFO'?
   71 |       MACH_TASK_BASIC_INFO,
      |       ^~~~~~~~~~~~~~~~~~~~
      |       TASK_BASIC_INFO
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:72:38: error: expected primary-expression before ',' token
   72 |       (thread_info_t)&task_basic_info,
      |                                      ^
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:80:39: error: expected primary-expression before '.' token
   80 |       time_value_to_ns(task_basic_info.user_time) +
      |                                       ^
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:81:39: error: expected primary-expression before '.' token
   81 |       time_value_to_ns(task_basic_info.system_time);
      |                                       ^
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp: In function 'int clock_gettime(clockid_t, timespec*)':
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:103:31: error: no match for call to '(const folly::to_underlying_fn) (clockid_t&)'
  103 |   switch (folly::to_underlying(clk_id)) {
      |           ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:21:
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/Utility.h:689:39: note: candidate: 'template<class ..., class E> constexpr std::underlying_type_t<E> folly::to_underlying_fn::operator()(E) const'
  689 |   constexpr std::underlying_type_t<E> operator()(E e) const noexcept {
      |                                       ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/Utility.h:689:39: note:   template argument deduction/substitution failed:
In file included from /opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/Utility.h:21:
/opt/local/include/gcc12/c++/type_traits: In substitution of 'template<class _Tp> using underlying_type_t = typename std::underlying_type::type [with _Tp = int]':
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/Utility.h:689:39:   required by substitution of 'template<class ..., class E> constexpr std::underlying_type_t<E> folly::to_underlying_fn::operator()(E) const [with <template-parameter-1-1> = {}; E = int]'
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:103:31:   required from here
/opt/local/include/gcc12/c++/type_traits:2626:11: error: no type named 'type' in 'struct std::underlying_type<int>'
 2626 |     using underlying_type_t = typename underlying_type<_Tp>::type;
      |           ^~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:114:10: error: 'CLOCK_PROCESS_CPUTIME_ID' was not declared in this scope
  114 |     case CLOCK_PROCESS_CPUTIME_ID:
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:116:10: error: 'CLOCK_THREAD_CPUTIME_ID' was not declared in this scope
  116 |     case CLOCK_THREAD_CPUTIME_ID:
      |          ^~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCRosettaPorts_devel_folly/folly/work/folly-v2022.08.01.00/folly/portability/Time.cpp:122:1: warning: control reaches end of non-void function [-Wreturn-type]
  122 | }
      | ^

UPD. This is not specific to PPC, but to OS < 10.8. Can be fixed like this: https://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/-test-/memory_status/memory_status.c?view=markup&pathrev=57180

Also: bear-metal/tunemygc@9652a75

@mascguy
Copy link
Member

mascguy commented Aug 10, 2022

For the F_DUPFD_CLOEXEC item, we recently encountered a similar issue with glib2. And upstream provided the following logic:

#ifdef F_DUPFD_CLOEXEC
      source = fcntl (fd, F_DUPFD_CLOEXEC, arg);
#else
      source = dup (fd);
#endif

So in short, don't define the constant. (Because if it's not defined already, it means the platform doesn't support it.) Instead, check whether it's defined, and make the appropriate call based on that.

I'm not an expert on this call though, so I'll defer to Ken and Ryan for guidance.

@aeiouaeiouaeiouaeiouaeiouaeiou
Copy link
Contributor

I appreciate your work on this, since Facebook libraries are so painful to maintain.

@barracuda156
Copy link
Contributor Author

For the F_DUPFD_CLOEXEC item, we recently encountered a similar issue with glib2. And upstream provided the following logic:

#ifdef F_DUPFD_CLOEXEC
      source = fcntl (fd, F_DUPFD_CLOEXEC, arg);
#else
      source = dup (fd);
#endif

So in short, don't define the constant. (Because if it's not defined already, it means the platform doesn't support it.) Instead, check whether it's defined, and make the appropriate call based on that.

I'm not an expert on this call though, so I'll defer to Ken and Ryan for guidance.

@mascguy Appreciated! I will update the patch.

@barracuda156 barracuda156 changed the title folly: update to 2022.08.01.00, add fixes for gcc and PPC folly: update to 2022.08.01.00, add fixes for gcc and older OS Aug 11, 2022
@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 11, 2022

After fixing the about, build errs out on:

Details
Undefined symbols:
  "__ZN5folly6detail13base64_detail19base64URLDecodeSWAREPKcS3_Pc", referenced from:
      lC0 in Base64Api.cpp.o
  "__ZN6google20GetCommandLineOptionEPKcPSs", referenced from:
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseISsE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIbE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIiE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIxE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIjE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIyE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIdE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
  "__ZN6google4base21CheckOpMessageBuilder9NewStringEv", referenced from:
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in File.cpp.o
      __ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc in IPAddress.cpp.o
      __ZN6google17MakeCheckOpStringIhiEEPSsRKT_RKT0_PKc in IPAddress.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Random.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Singleton.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in Subprocess.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly17ProcessReturnCode5StateES3_EEPSsRKT_RKT0_PKc in Subprocess.cpp.o
      __ZN6google17MakeCheckOpStringIPKhS2_EEPSsRKT_RKT0_PKc in json.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in Compression.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Compression.cpp.o
      __ZN6google17MakeCheckOpStringIimEEPSsRKT_RKT0_PKc in Compression.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in CPUThreadPoolExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in CPUThreadPoolExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in SerialExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in StrandExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIimEEPSsRKT_RKT0_PKc in ThreadPoolExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in ThreadedExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in TimedDrivableExecutor.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in DynamicParser.cpp.o
      __ZN6google17MakeCheckOpStringIPcS1_EEPSsRKT_RKT0_PKc in EnvUtil.cpp.o
      __ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc in EnvUtil.cpp.o
      __ZN6google17MakeCheckOpStringIbbEEPSsRKT_RKT0_PKc in FunctionScheduler.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly11AsyncBaseOp5StateES3_EEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringISt6atomicImEiEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in ObserverManager.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in Fiber.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Fiber.cpp.o
      __ZN6google17MakeCheckOpStringIliEEPSsRKT_RKT0_PKc in Fiber.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly6fibers12FiberManagerES4_EEPSsRKT_RKT0_PKc in SimpleLoopController.cpp.o
      __ZN6google17MakeCheckOpStringIttEEPSsRKT_RKT0_PKc in IOBuf.cpp.o
      __ZN6google17MakeCheckOpStringIhN5folly17ShutdownSocketSet5StateEEEPSsRKT_RKT0_PKc in ShutdownSocketSet.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in AsyncSSLSocket.cpp.o
      __ZN6google17MakeCheckOpStringImlEEPSsRKT_RKT0_PKc in AsyncSSLSocket.cpp.o
      __ZN6google17MakeCheckOpStringIjjEEPSsRKT_RKT0_PKc in AsyncSSLSocket.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in AsyncServerSocket.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly13NetworkSocketES2_EEPSsRKT_RKT0_PKc in AsyncServerSocket.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in AsyncSocket.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in AsyncSocket.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in AsyncUDPSocket.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly13NetworkSocketES2_EEPSsRKT_RKT0_PKc in AsyncUDPSocket.cpp.o
      __ZN6google17MakeCheckOpStringIxiEEPSsRKT_RKT0_PKc in AsyncUDPSocket.cpp.o
      __ZN6google17MakeCheckOpStringINSt6thread2idES2_EEPSsRKT_RKT0_PKc in EventBase.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in Request.cpp.o
      __ZN6google17MakeCheckOpStringIxiEEPSsRKT_RKT0_PKc in MemoryMapping.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in MemoryMapping.cpp.o
  "___atomic_fetch_sub_8", referenced from:
      __ZN5folly6detail17CancellationState6unlockEv in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState28unlockAndIncrementTokenCountEv in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState28unlockAndDecrementTokenCountEv in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState14removeCallbackEPNS_20CancellationCallbackE in CancellationToken.cpp.o
      __ZN5folly6detail13futexWaitImplEPKNS0_19EmulatedFutexAtomicIjEEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __ZN5folly6detail13futexWaitImplEPKSt6atomicIjEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __ZN5folly18parking_lot_detail6Bucket5eraseEPNS0_12WaitNodeBaseE in Futex.cpp.o
      __ZN5folly10TLRefCountmmEv in GlobalExecutor.cpp.o
      __ZN5folly10TLRefCountmmEv in JSONSchema.cpp.o
      __ZN5folly4coro6detail11TaskPromiseIiED1Ev in SimpleAsyncIO.cpp.o
      __ZN5folly10TLRefCountmmEv in ObserverManager.cpp.o
      __ZN5folly6detail17CancellationState20removeTokenReferenceEv in BatchSemaphore.cpp.o
      __ZN5folly4coro6detail11TaskPromiseIvED1Ev in Semaphore.cpp.o
      __ZN5folly4coro6detail11TaskPromiseIvED1Ev in SemaphoreBase.cpp.o
      __ZN5folly7futures7Barrier4waitEv in Barrier.cpp.o
      __ZN5folly10TLRefCountmmEv in ThreadWheelTimekeeper.cpp.o
      __ZN5folly10TLRefCountmmEv in GlobalShutdownSocketSet.cpp.o
      __ZNSt10unique_ptrIN5folly6detail17CancellationStateENS1_30CancellationStateSourceDeleterEED1Ev in TerminateCancellationToken.cpp.o
      __ZN5folly10TLRefCountmmEv in TerminateCancellationToken.cpp.o
      __ZN5folly6detail17CancellationState20removeTokenReferenceEv in ServerSocket.cpp.o
      __ZN5folly6detail17CancellationState20removeTokenReferenceEv in Transport.cpp.o
      __ZN5folly6detail14ScopeGuardImplIZNS0_17distributed_mutex16DistributedMutexISt6atomicLb1EE6unlockERKNS5_26DistributedMutexStateProxyEEUlvE_Lb1EED1Ev in DistributedMutex.cpp.o
      __ZN5folly10TLRefCountmmEv in HazptrThreadPoolExecutor.cpp.o
  "__ZN6google14FlagRegistererC1ISsEEPKcS3_S3_PT_S5_", referenced from:
      __GLOBAL__sub_I_Init.cpp in Init.cpp.o
  "___atomic_exchange_8", referenced from:
      __ZN5folly6detail17distributed_mutex4spinINS1_6WaiterISt6atomicEEEEbRT_Rjj in DistributedMutex.cpp.o
  "__ZN5folly6detail13base64_detail16base64DecodeSWAREPKcS3_Pc", referenced from:
      lC0 in Base64Api.cpp.o
  "___atomic_load_8", referenced from:
      __ZN5folly6detail17CancellationState4lockEv in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState4lockEv in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState14tryAddCallbackEPNS_20CancellationCallbackEb in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState31tryLockAndCancelUnlessCancelledEv in CancellationToken.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in Singleton.cpp.o
      __ZN5folly6detail12_GLOBAL__N_117emulatedFutexWakeEPKvij in Futex.cpp.o
      __ZN5folly6detail11MemoryIdler22flushLocalMallocCachesEv in MemoryIdler.cpp.o
      __ZN5folly6detail11MemoryIdler22flushLocalMallocCachesEv in MemoryIdler.cpp.o
      __ZSt14__relocate_a_1IPN5folly9MPMCQueueINS0_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEES6_SaIS5_EET0_T_S9_S8_RT1_.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZSt14__relocate_a_1IPN5folly9MPMCQueueINS0_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEES6_SaIS5_EET0_T_S9_S8_RT1_.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZSt14__relocate_a_1IPN5folly9MPMCQueueINS0_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEES6_SaIS5_EET0_T_S9_S8_RT1_.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZN5folly21CPUThreadPoolExecutor9threadRunESt10shared_ptrINS_18ThreadPoolExecutor6ThreadEE in CPUThreadPoolExecutor.cpp.o
      __ZN5folly24PriorityLifoSemMPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskELNS_19QueueBehaviorIfFullE0EE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly24PriorityLifoSemMPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskELNS_19QueueBehaviorIfFullE0EE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly24PriorityLifoSemMPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskELNS_19QueueBehaviorIfFullE0EE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly24PriorityLifoSemMPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskELNS_19QueueBehaviorIfFullE0EE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly22UnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly22UnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly30PriorityUnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly30PriorityUnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE4sizeEv in CPUThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEESt6atomicE4loadESt12memory_order in CPUThreadPoolExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_21CPUThreadPoolExecutor7CPUTaskELb0ELb0ELb0ELm6ELm7ESt6atomicE21cleanUpRemainingItemsEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_21CPUThreadPoolExecutor7CPUTaskELb0ELb0ELb0ELm6ELm7ESt6atomicE21cleanUpRemainingItemsEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_21CPUThreadPoolExecutor7CPUTaskELb0ELb0ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_21CPUThreadPoolExecutor7CPUTaskELb0ELb0ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in CPUThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE4loadESt12memory_order in CPUThreadPoolExecutor.cpp.o
      __ZN5folly24PriorityLifoSemMPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskELNS_19QueueBehaviorIfFullE0EE15nonBlockingTakeERS2_ in CPUThreadPoolExecutor.cpp.o
      __ZN5folly24PriorityLifoSemMPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskELNS_19QueueBehaviorIfFullE0EE15nonBlockingTakeERS2_ in CPUThreadPoolExecutor.cpp.o
      __ZN5folly6detail13MPMCQueueBaseINS_9MPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEEE14writeIfNotFullIJS4_EEEbDpOT_ in CPUThreadPoolExecutor.cpp.o
      __ZN5folly6detail13MPMCQueueBaseINS_9MPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEEE14writeIfNotFullIJS4_EEEbDpOT_ in CPUThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E4loadESt12memory_order in CPUThreadPoolExecutor.cpp.o
      __ZN5folly25PriorityUnboundedQueueSetINS_21CPUThreadPoolExecutor7CPUTaskELb0ELb0ELb1ELm8ELm7ESt6atomicE11try_dequeueEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly25PriorityUnboundedQueueSetINS_21CPUThreadPoolExecutor7CPUTaskELb0ELb0ELb1ELm8ELm7ESt6atomicE11try_dequeueEv in CPUThreadPoolExecutor.cpp.o
      __ZNSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEC4ISt6atomicIyEvEERKT_ in Codel.cpp.o
      __ZNKSt6atomicINSt6chrono8durationIxSt5ratioILx1ELx1000EEEEE4loadESt12memory_order in Codel.cpp.o
      __ZN5folly21EDFThreadPoolExecutor9TaskQueue16findNextDeadlineEy in EDFThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE4loadESt12memory_order in EDFThreadPoolExecutor.cpp.o
      __ZN5folly21EDFThreadPoolExecutor9TaskQueue4pushESt10shared_ptrINS0_4TaskEE in EDFThreadPoolExecutor.cpp.o
      __ZN5folly21EDFThreadPoolExecutor9TaskQueue3popEv in EDFThreadPoolExecutor.cpp.o
      __ZN5folly19SaturatingSemaphoreILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in EDFThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E4loadESt12memory_order in EDFThreadPoolExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in GlobalExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in GlobalExecutor.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in GlobalExecutor.cpp.o
      __ZN5folly10TLRefCountppEv in GlobalExecutor.cpp.o
      __ZN5folly18MemoryIdlerTimeout15runLoopCallbackEv in IOThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE4loadESt12memory_order in ManualExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E4loadESt12memory_order in ManualExecutor.cpp.o
      __ZN5folly19SaturatingSemaphoreILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in ManualExecutor.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE.isra.0 in MeteredExecutor.cpp.o
      __ZN5folly14SerialExecutor3runEv in SerialExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_14SerialExecutor4TaskELb0ELb1ELb0ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in SerialExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_14SerialExecutor4TaskELb0ELb1ELb0ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in SerialExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in SerialExecutor.cpp.o
      __ZN5folly13StrandContext22dispatchFrontQueueItemESt10shared_ptrIS0_E in StrandExecutor.cpp.o
      __ZN5folly13StrandContext22dispatchFrontQueueItemESt10shared_ptrIS0_E in StrandExecutor.cpp.o
      __ZN5folly13StrandContext11executeNextESt10shared_ptrIS0_E in StrandExecutor.cpp.o
      __ZN5folly13StrandContext11executeNextESt10shared_ptrIS0_E in StrandExecutor.cpp.o
      __ZN5folly13StrandContext11executeNextESt10shared_ptrIS0_E in StrandExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_13StrandContext9QueueItemELb0ELb1ELb0ELm6ELm7ESt6atomicE21cleanUpRemainingItemsEv in StrandExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_13StrandContext9QueueItemELb0ELb1ELb0ELm6ELm7ESt6atomicE21cleanUpRemainingItemsEv in StrandExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in StrandExecutor.cpp.o
      __ZNK5folly18ThreadPoolExecutor12getPoolStatsEv in ThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEESt6atomicE4loadESt12memory_order in ThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE4loadESt12memory_order in ThreadPoolExecutor.cpp.o
      __ZNK5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E4loadESt12memory_order in ThreadPoolExecutor.cpp.o
      __ZN5folly19SaturatingSemaphoreILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE.isra.0 in ThreadedExecutor.cpp.o
      __ZN5folly16ThreadedExecutor7controlEv in ThreadedExecutor.cpp.o
      __ZN5folly16ThreadedExecutorD4Ev in ThreadedExecutor.cpp.o
      __ZN5folly16ThreadedExecutorD4Ev in ThreadedExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_16ThreadedExecutor7MessageELb0ELb1ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in ThreadedExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_16ThreadedExecutor7MessageELb0ELb1ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in ThreadedExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in ThreadedExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor3runEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor3runEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor3runEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor3runEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor8try_waitEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor8try_waitEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor4waitEv in TimedDrivableExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_8FunctionIFvvEEELb0ELb1ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in TimedDrivableExecutor.cpp.o
      __ZN5folly14UnboundedQueueINS_8FunctionIFvvEEELb0ELb1ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in TimedDrivableExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in TimedDrivableExecutor.cpp.o
      __ZN5folly19SaturatingSemaphoreILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in TimedDrivableExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in JSONSchema.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in JSONSchema.cpp.o
      __ZN5folly10TLRefCountppEv in JSONSchema.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in JSONSchema.cpp.o
      __ZN5folly8channels11RateLimiter5TokenD4Ev.constprop.0 in RateLimiter.cpp.o
      __ZN5folly8channels11RateLimiter16executeWhenReadyENS_8FunctionIFvNS1_5TokenEEEENS_8Executor9KeepAliveINS_17SequencedExecutorEEE in RateLimiter.cpp.o
      __ZNK5folly14UnboundedQueueINS_8channels11RateLimiter9QueueItemELb1ELb1ELb0ELm6ELm7ESt6atomicE5emptyEv in RateLimiter.cpp.o
      __ZNK5folly14UnboundedQueueINS_8channels11RateLimiter9QueueItemELb1ELb1ELb0ELm6ELm7ESt6atomicE5emptyEv in RateLimiter.cpp.o
      __ZN5folly14UnboundedQueueINS_8channels11RateLimiter9QueueItemELb1ELb1ELb0ELm6ELm7ESt6atomicE21cleanUpRemainingItemsEv in RateLimiter.cpp.o
      __ZN5folly14UnboundedQueueINS_8channels11RateLimiter9QueueItemELb1ELb1ELb0ELm6ELm7ESt6atomicE21cleanUpRemainingItemsEv in RateLimiter.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in RateLimiter.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE.isra.0 in SimpleAsyncIO.cpp.o
      __ZNKSt14default_deleteIN5folly15observer_detail15ObserverManager14UpdatesManager12CurrentQueueEEclEPS4_.part.0 in ObserverManager.cpp.o
      __ZNKSt14default_deleteIN5folly15observer_detail15ObserverManager14UpdatesManager12CurrentQueueEEclEPS4_.part.0 in ObserverManager.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in ObserverManager.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in ObserverManager.cpp.o
      __ZN5folly14UnboundedQueueINS_8FunctionIFvvEEELb0ELb0ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in ObserverManager.cpp.o
      __ZN5folly14UnboundedQueueINS_8FunctionIFvvEEELb0ELb0ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in ObserverManager.cpp.o
      __ZN5folly14UnboundedQueueINS_8FunctionIFSt10shared_ptrINS_15observer_detail4CoreEEvEEELb0ELb1ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in ObserverManager.cpp.o
      __ZN5folly14UnboundedQueueINS_8FunctionIFSt10shared_ptrINS_15observer_detail4CoreEEvEEELb0ELb1ELb1ELm8ELm7ESt6atomicE21cleanUpRemainingItemsEv in ObserverManager.cpp.o
      __ZN5folly10TLRefCountppEv in ObserverManager.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in ObserverManager.cpp.o
      __ZNK5folly12AtomicStructINSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEESt6atomicE4loadESt12memory_order in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZN5folly8settings6detail12SnapshotBaseC4Ev in Settings.cpp.o
      __ZN5folly6fibers5Baton10waitThreadEv in Baton.cpp.o
      __ZN5folly6fibers9Semaphore8try_waitEv in Semaphore.cpp.o
      __ZNK5folly6fibers9Semaphore18getAvailableTokensEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore10signalSlowEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore6signalEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore8waitSlowERNS1_6WaiterE in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore4waitEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore8try_waitERNS1_6WaiterE in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore7co_waitEPZNS1_7co_waitEvE42_ZN5folly6fibers9Semaphore7co_waitEv.Frame.actor in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore11future_waitEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore11future_waitEv in Semaphore.cpp.o
      __ZNK5folly6fibers13SemaphoreBase18getAvailableTokensEv in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase10signalSlowEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase8waitSlowERNS1_6WaiterEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase11wait_commonEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase15try_wait_commonERNS1_6WaiterEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase14co_wait_commonEPZNS1_14co_wait_commonExE55_ZN5folly6fibers13SemaphoreBase14co_wait_commonEx.Frame.actor in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase18future_wait_commonEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase18future_wait_commonEx in SemaphoreBase.cpp.o
      __ZN5folly7futures7BarrierD4Ev.constprop.0 in Barrier.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in ThreadWheelTimekeeper.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in ThreadWheelTimekeeper.cpp.o
      __ZN5folly10TLRefCountppEv in ThreadWheelTimekeeper.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in ThreadWheelTimekeeper.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in GlobalShutdownSocketSet.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in GlobalShutdownSocketSet.cpp.o
      __ZN5folly10TLRefCountppEv in GlobalShutdownSocketSet.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in GlobalShutdownSocketSet.cpp.o
      __ZN5folly17AsyncServerSocket14dispatchSocketENS_13NetworkSocketEONS_13SocketAddressE in AsyncServerSocket.cpp.o
      __ZN5folly17AsyncServerSocket13dispatchErrorEPKci in AsyncServerSocket.cpp.o
      __ZNK5folly8observer14AtomicObserverINSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEEE3getEv in AsyncServerSocket.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE.isra.0 in EventBase.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in Request.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE.isra.0 in ScopedEventBaseThread.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in TerminateCancellationToken.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in TerminateCancellationToken.cpp.o
      __ZN5folly10TLRefCountppEv in TerminateCancellationToken.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in TerminateCancellationToken.cpp.o
      __ZNK5folly17CancellationToken23isCancellationRequestedEv in ServerSocket.cpp.o
      __ZNK5folly17CancellationToken23isCancellationRequestedEv in Transport.cpp.o
      __ZN5folly7logging19IntervalRateLimiter9checkSlowEv in RateLimiter.cpp.o
      __ZN5folly6detail14ScopeGuardImplIZNS0_17distributed_mutex16DistributedMutexISt6atomicLb1EE6unlockERKNS5_26DistributedMutexStateProxyEEUlvE_Lb1EED1Ev in DistributedMutex.cpp.o
      __ZN5folly6detail17distributed_mutex4wakeINS1_6WaiterISt6atomicEEEEbbRT_mRPS6_y in DistributedMutex.cpp.o
      __ZN5folly6detail17distributed_mutex4spinINS1_6WaiterISt6atomicEEEEbRT_Rjj in DistributedMutex.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in HazptrThreadPoolExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in HazptrThreadPoolExecutor.cpp.o
      __ZN5folly5BatonILb1ESt6atomicE11tryWaitSlowINSt6chrono3_V212steady_clockENS4_8durationIxSt5ratioILx1ELx1000000000EEEEEEbRKNS4_10time_pointIT_T0_EERKNS_11WaitOptionsE in HazptrThreadPoolExecutor.cpp.o
      __ZN5folly10TLRefCountppEv in HazptrThreadPoolExecutor.cpp.o
      __ZN5folly13getOSThreadIDEv in ThreadId.cpp.o
  "__ZN6google20SetCommandLineOptionEPKcS1_", referenced from:
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIdE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseISsE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIyE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIjE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIxE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIiE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIbE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
  "___atomic_store_8", referenced from:
      __ZSt14__relocate_a_1IPN5folly9MPMCQueueINS0_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEES6_SaIS5_EET0_T_S9_S8_RT1_.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZSt14__relocate_a_1IPN5folly9MPMCQueueINS0_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEES6_SaIS5_EET0_T_S9_S8_RT1_.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZSt14__relocate_a_1IPN5folly9MPMCQueueINS0_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEES6_SaIS5_EET0_T_S9_S8_RT1_.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in CPUThreadPoolExecutor.cpp.o
      __ZN5folly5Codel10setOptionsERKNS0_7OptionsE in Codel.cpp.o
      __ZN5folly5Codel10setOptionsERKNS0_7OptionsE in Codel.cpp.o
      __ZN5folly5Codel10overloadedENSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE in Codel.cpp.o
      __ZN5folly5Codel10overloadedENSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE in Codel.cpp.o
      __ZN5folly5Codel10overloadedENSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEE in Codel.cpp.o
      __ZN5folly21EDFThreadPoolExecutor9threadRunESt10shared_ptrINS_18ThreadPoolExecutor6ThreadEE in EDFThreadPoolExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in EDFThreadPoolExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in GlobalExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in ManualExecutor.cpp.o
      __ZN5folly14SerialExecutor3runEv in SerialExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in SerialExecutor.cpp.o
      __ZN5folly13StrandContext11executeNextESt10shared_ptrIS0_E in StrandExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in StrandExecutor.cpp.o
      __ZN5folly18ThreadPoolExecutorC4EmmSt10shared_ptrINS_13ThreadFactoryEE.constprop.0 in ThreadPoolExecutor.cpp.o
      __ZN5folly18ThreadPoolExecutor7runTaskERKSt10shared_ptrINS0_6ThreadEEONS0_4TaskE in ThreadPoolExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in ThreadPoolExecutor.cpp.o
      __ZN5folly16ThreadedExecutor7controlEv in ThreadedExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in ThreadedExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor3runEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor8try_waitEv in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor4waitEv in TimedDrivableExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in TimedDrivableExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in JSONSchema.cpp.o
      __ZN5folly8channels11RateLimiter5TokenD4Ev.constprop.0 in RateLimiter.cpp.o
      __ZN5folly8channels11RateLimiter16executeWhenReadyENS_8FunctionIFvNS1_5TokenEEEENS_8Executor9KeepAliveINS_17SequencedExecutorEEE in RateLimiter.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in RateLimiter.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in ObserverManager.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in ThreadWheelTimekeeper.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in GlobalShutdownSocketSet.cpp.o
      __ZN5folly14RecordIOWriterC4ENS_4FileEj in RecordIO.cpp.o
      __ZNK5folly8observer14AtomicObserverINSt6chrono8durationIxSt5ratioILx1ELx1000000000EEEEE3getEv in AsyncServerSocket.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE21check_count_thresholdEv in Request.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in TerminateCancellationToken.cpp.o
      __ZN5folly7logging19IntervalRateLimiter9checkSlowEv in RateLimiter.cpp.o
      __ZN5folly6detail17distributed_mutex18lockImplementationISt6atomicLb1ES3_ImEDnEENS1_16DistributedMutexIT_XT0_EE26DistributedMutexStateProxyERS7_RT1_RT2_.isra.0 in DistributedMutex.cpp.o
      __ZN5folly6detail17distributed_mutex4wakeINS1_6WaiterISt6atomicEEEEbbRT_mRPS6_y in DistributedMutex.cpp.o
      __ZN5folly6detail17distributed_mutex4wakeINS1_6WaiterISt6atomicEEEEbbRT_mRPS6_y in DistributedMutex.cpp.o
      __ZN5folly6detail17distributed_mutex4wakeINS1_6WaiterISt6atomicEEEEbbRT_mRPS6_y in DistributedMutex.cpp.o
      __ZN5folly6detail17distributed_mutex4wakeINS1_6WaiterISt6atomicEEEEbbRT_mRPS6_y in DistributedMutex.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount6updateEx in HazptrThreadPoolExecutor.cpp.o
  "___atomic_compare_exchange_8", referenced from:
      __ZN5folly6detail17CancellationState4lockEv in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState14tryAddCallbackEPNS_20CancellationCallbackEb in CancellationToken.cpp.o
      __ZN5folly6detail17CancellationState31tryLockAndCancelUnlessCancelledEv in CancellationToken.cpp.o
      __ZN5folly6detail11MemoryIdler22flushLocalMallocCachesEv in MemoryIdler.cpp.o
      __ZN5folly6detail11MemoryIdler22flushLocalMallocCachesEv in MemoryIdler.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE23compare_exchange_strongERS2_S2_St12memory_order in CPUThreadPoolExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in CPUThreadPoolExecutor.cpp.o
      __ZN5folly24PriorityLifoSemMPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskELNS_19QueueBehaviorIfFullE0EE15nonBlockingTakeERS2_ in CPUThreadPoolExecutor.cpp.o
      __ZN5folly6detail13MPMCQueueBaseINS_9MPMCQueueINS_21CPUThreadPoolExecutor7CPUTaskESt6atomicLb0EEEE14writeIfNotFullIJS4_EEEbDpOT_ in CPUThreadPoolExecutor.cpp.o
      __ZN5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E23compare_exchange_strongERS9_S9_St12memory_order in CPUThreadPoolExecutor.cpp.o
      __ZN5folly25PriorityUnboundedQueueSetINS_21CPUThreadPoolExecutor7CPUTaskELb0ELb0ELb1ELm8ELm7ESt6atomicE11try_dequeueEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE23compare_exchange_strongERS2_S2_St12memory_order in EDFThreadPoolExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in EDFThreadPoolExecutor.cpp.o
      __ZN5folly21EDFThreadPoolExecutor9TaskQueue4pushESt10shared_ptrINS0_4TaskEE in EDFThreadPoolExecutor.cpp.o
      __ZN5folly21EDFThreadPoolExecutor9TaskQueue3popEv in EDFThreadPoolExecutor.cpp.o
      __ZN5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E23compare_exchange_strongERS9_S9_St12memory_order in EDFThreadPoolExecutor.cpp.o
      __ZN5folly10TLRefCountppEv in GlobalExecutor.cpp.o
      __ZN5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE23compare_exchange_strongERS2_S2_St12memory_order in ManualExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in ManualExecutor.cpp.o
      __ZN5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E23compare_exchange_strongERS9_S9_St12memory_order in ManualExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in SerialExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in StrandExecutor.cpp.o
      __ZN5folly12AtomicStructINS_6detail11LifoSemHeadESt6atomicE23compare_exchange_strongERS2_S2_St12memory_order in ThreadPoolExecutor.cpp.o
      __ZN5folly6detail11LifoSemBaseINS_19SaturatingSemaphoreILb1ESt6atomicEES3_E13tryRemoveNodeERKNS0_11LifoSemNodeIS4_S3_EE in ThreadPoolExecutor.cpp.o
      __ZN5folly12AtomicStructINS_14IndexedMemPoolINS_6detail14LifoSemRawNodeISt6atomicEELj32ELj200ES4_NS_20IndexedMemPoolTraitsIS5_Lb0ELb0EEEE9TaggedPtrES4_E23compare_exchange_strongERS9_S9_St12memory_order in ThreadPoolExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in ThreadedExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in TimedDrivableExecutor.cpp.o
      __ZN5folly10TLRefCountppEv in JSONSchema.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in RateLimiter.cpp.o
      __ZN5folly10TLRefCountppEv in ObserverManager.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in ObserverManager.cpp.o
      __ZN5folly6fibers9Semaphore8try_waitEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore10signalSlowEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore6signalEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore4waitEv in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore8try_waitERNS1_6WaiterE in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore7co_waitEPZNS1_7co_waitEvE42_ZN5folly6fibers9Semaphore7co_waitEv.Frame.actor in Semaphore.cpp.o
      __ZN5folly6fibers9Semaphore11future_waitEv in Semaphore.cpp.o
      __ZN5folly6fibers13SemaphoreBase10signalSlowEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase10signalSlowEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase11wait_commonEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase15try_wait_commonERNS1_6WaiterEx in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase14co_wait_commonEPZNS1_14co_wait_commonExE55_ZN5folly6fibers13SemaphoreBase14co_wait_commonEx.Frame.actor in SemaphoreBase.cpp.o
      __ZN5folly6fibers13SemaphoreBase18future_wait_commonEx in SemaphoreBase.cpp.o
      __ZN5folly10TLRefCountppEv in ThreadWheelTimekeeper.cpp.o
      __ZN5folly10TLRefCountppEv in GlobalShutdownSocketSet.cpp.o
      __ZN5folly17AsyncServerSocket14dispatchSocketENS_13NetworkSocketEONS_13SocketAddressE in AsyncServerSocket.cpp.o
      __ZN5folly17AsyncServerSocket13dispatchErrorEPKci in AsyncServerSocket.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE14check_due_timeEv in Request.cpp.o
      __ZN5folly10TLRefCountppEv in TerminateCancellationToken.cpp.o
      __ZN5folly7logging19IntervalRateLimiter9checkSlowEv in RateLimiter.cpp.o
      __ZN5folly10TLRefCountppEv in HazptrThreadPoolExecutor.cpp.o
  "___atomic_fetch_add_8", referenced from:
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in Singleton.cpp.o
      __ZN5folly6detail13futexWaitImplEPKNS0_19EmulatedFutexAtomicIjEEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __ZN5folly6detail13futexWaitImplEPKNS0_19EmulatedFutexAtomicIjEEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __ZN5folly6detail13futexWaitImplEPKNS0_19EmulatedFutexAtomicIjEEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __ZN5folly6detail13futexWaitImplEPKSt6atomicIjEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __ZN5folly6detail13futexWaitImplEPKSt6atomicIjEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __ZN5folly6detail13futexWaitImplEPKSt6atomicIjEjPKNSt6chrono10time_pointINS5_3_V212system_clockENS5_8durationIxSt5ratioILx1ELx1000000000EEEEEEPKNS6_INS7_12steady_clockESC_EEj in Futex.cpp.o
      __GLOBAL__sub_I_Futex.cpp in Futex.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in CPUThreadPoolExecutor.cpp.o
      __ZN5folly18ThreadPoolExecutor10makeThreadEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly18NamedThreadFactory9newThreadEONS_8FunctionIFvvEEE in CPUThreadPoolExecutor.cpp.o
      __ZN5folly30PriorityUnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE15addWithPriorityES2_a in CPUThreadPoolExecutor.cpp.o
      __ZN5folly22UnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE3addES2_ in CPUThreadPoolExecutor.cpp.o
      __ZN5folly22UnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE12try_take_forENSt6chrono8durationIxSt5ratioILx1ELx1000EEEE in CPUThreadPoolExecutor.cpp.o
      __ZN5folly22UnboundedBlockingQueueINS_21CPUThreadPoolExecutor7CPUTaskEE4takeEv in CPUThreadPoolExecutor.cpp.o
      __ZN5folly18ThreadPoolExecutor10makeThreadEv in EDFThreadPoolExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in GlobalExecutor.cpp.o
      __ZN5folly18NamedThreadFactory9newThreadEONS_8FunctionIFvvEEE in GlobalExecutor.cpp.o
      __ZN5folly18ThreadPoolExecutor6ThreadC4EPS0_ in IOThreadPoolExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in SerialExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in SerialExecutor.cpp.o
      __ZN5folly14SerialExecutor3addENS_8FunctionIFvvEEE in SerialExecutor.cpp.o
      __ZN5folly14SerialExecutor15addWithPriorityENS_8FunctionIFvvEEEa in SerialExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in StrandExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in StrandExecutor.cpp.o
      __ZN5folly13StrandContext7addImplEONS0_9QueueItemE in StrandExecutor.cpp.o
      __ZN5folly18ThreadPoolExecutor10makeThreadEv in ThreadPoolExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in ThreadedExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in ThreadedExecutor.cpp.o
      __ZN5folly16ThreadedExecutor3addENS_8FunctionIFvvEEE in ThreadedExecutor.cpp.o
      __ZN5folly16ThreadedExecutor4workERNS_8FunctionIFvvEEE in ThreadedExecutor.cpp.o
      __ZN5folly16ThreadedExecutorD4Ev in ThreadedExecutor.cpp.o
      __ZN5folly18NamedThreadFactory9newThreadEONS_8FunctionIFvvEEE in ThreadedExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in TimedDrivableExecutor.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in TimedDrivableExecutor.cpp.o
      __ZN5folly21TimedDrivableExecutor3addENS_8FunctionIFvvEEE in TimedDrivableExecutor.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in JSONSchema.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in RateLimiter.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in RateLimiter.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in ObserverManager.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in ObserverManager.cpp.o
      __ZNKSt14default_deleteIN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueueEEclEPS4_.part.0 in ObserverManager.cpp.o
      __ZNKSt14default_deleteIN5folly15observer_detail15ObserverManager14UpdatesManager12CurrentQueueEEclEPS4_.part.0 in ObserverManager.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in ObserverManager.cpp.o
      __ZN5folly15observer_detail15ObserverManager14UpdatesManager12CurrentQueue3addENS_8FunctionIFvvEEE in ObserverManager.cpp.o
      __ZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueue3addENS_8FunctionIFSt10shared_ptrINS0_4CoreEEvEEE in ObserverManager.cpp.o
      __ZN5folly15observer_detail15ObserverManager14UpdatesManager9NextQueue12waitForEmptyEv in ObserverManager.cpp.o
      __ZZN5folly15observer_detail15ObserverManager14UpdatesManager12CurrentQueueC4EvENKUlvE_clEv in ObserverManager.cpp.o
      __ZN5folly8settings6detail17nextGlobalVersionEv in Settings.cpp.o
      __ZN5folly4coro6detail15TaskPromiseBase15await_transformINS0_4TaskIvEEEEDaOT_ in BatchSemaphore.cpp.o
      __ZN5folly7futures7Barrier4waitEv in Barrier.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in ThreadWheelTimekeeper.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in GlobalShutdownSocketSet.cpp.o
      __ZN5folly14RecordIOWriter5writeESt10unique_ptrINS_5IOBufESt14default_deleteIS2_EE in RecordIO.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE29hazptr_warning_list_too_largeEmmi.isra.0 in Request.cpp.o
      __ZN5folly13hazptr_domainISt6atomicE31hazptr_warning_executor_backlogEi.isra.0 in Request.cpp.o
      __ZNK5folly18CancellationSource8getTokenEv in TerminateCancellationToken.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in TerminateCancellationToken.cpp.o
      __ZN5folly4coro12ServerSocket6acceptEPZNS1_6acceptEvE43_ZN5folly4coro12ServerSocket6acceptEv.Frame.actor in ServerSocket.cpp.o
      __ZN5folly17CancellationTokenC4ERKS0_ in Transport.cpp.o
      __ZN5folly8LoggerDB26defaultInternalWarningImplENS_5RangeIPKcEEiOSs in LoggerDB.cpp.o
      __ZN5folly7logging19IntervalRateLimiter9checkSlowEv in RateLimiter.cpp.o
      __GLOBAL__sub_I_AtomicNotification.cpp in AtomicNotification.cpp.o
      __ZN5folly10TLRefCount13LocalRefCount7collectEv in HazptrThreadPoolExecutor.cpp.o
      __ZN5folly18NamedThreadFactory9newThreadEONS_8FunctionIFvvEEE in HazptrThreadPoolExecutor.cpp.o
      __ZN5folly6detail8function14FunctionTraitsIFvvEE9callSmallIZNS_12_GLOBAL__N_110CacheStateC4EvEUlvE1_EEvRNS1_4DataE in ThreadId.cpp.o
ld: symbol(s) not found
collect2: error: ld returned 1 exit status

@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 12, 2022

Atomics can be fixed, other symbols need to check. Wonder why gflags has issues.

@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 12, 2022

UPD. So yeah, atomics fixed, this remains:

Details
Undefined symbols:
  "__ZN6google20GetCommandLineOptionEPKcPSs", referenced from:
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseISsE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIbE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIiE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIxE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIjE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIyE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIdE13apply_defaultERN5boost3anyE in ProgramOptions.cpp.o
  "__ZN6google4base21CheckOpMessageBuilder9NewStringEv", referenced from:
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in File.cpp.o
      __ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc in IPAddress.cpp.o
      __ZN6google17MakeCheckOpStringIhiEEPSsRKT_RKT0_PKc in IPAddress.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Random.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Singleton.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in Subprocess.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly17ProcessReturnCode5StateES3_EEPSsRKT_RKT0_PKc in Subprocess.cpp.o
      __ZN6google17MakeCheckOpStringIPKhS2_EEPSsRKT_RKT0_PKc in json.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in Compression.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Compression.cpp.o
      __ZN6google17MakeCheckOpStringIimEEPSsRKT_RKT0_PKc in Compression.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in CPUThreadPoolExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in CPUThreadPoolExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in SerialExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in StrandExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIimEEPSsRKT_RKT0_PKc in ThreadPoolExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in ThreadedExecutor.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in TimedDrivableExecutor.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in DynamicParser.cpp.o
      __ZN6google17MakeCheckOpStringIPcS1_EEPSsRKT_RKT0_PKc in EnvUtil.cpp.o
      __ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc in EnvUtil.cpp.o
      __ZN6google17MakeCheckOpStringIbbEEPSsRKT_RKT0_PKc in FunctionScheduler.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly11AsyncBaseOp5StateES3_EEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringImiEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringISt6atomicImEiEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in AsyncBase.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in ObserverManager.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in Fiber.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in Fiber.cpp.o
      __ZN6google17MakeCheckOpStringIliEEPSsRKT_RKT0_PKc in Fiber.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly6fibers12FiberManagerES4_EEPSsRKT_RKT0_PKc in SimpleLoopController.cpp.o
      __ZN6google17MakeCheckOpStringIttEEPSsRKT_RKT0_PKc in IOBuf.cpp.o
      __ZN6google17MakeCheckOpStringIhN5folly17ShutdownSocketSet5StateEEEPSsRKT_RKT0_PKc in ShutdownSocketSet.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in AsyncSSLSocket.cpp.o
      __ZN6google17MakeCheckOpStringImlEEPSsRKT_RKT0_PKc in AsyncSSLSocket.cpp.o
      __ZN6google17MakeCheckOpStringIjjEEPSsRKT_RKT0_PKc in AsyncSSLSocket.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in AsyncServerSocket.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly13NetworkSocketES2_EEPSsRKT_RKT0_PKc in AsyncServerSocket.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in AsyncSocket.cpp.o
      __ZN6google17MakeCheckOpStringImjEEPSsRKT_RKT0_PKc in AsyncSocket.cpp.o
      __ZN6google17MakeCheckOpStringIiiEEPSsRKT_RKT0_PKc in AsyncUDPSocket.cpp.o
      __ZN6google17MakeCheckOpStringIN5folly13NetworkSocketES2_EEPSsRKT_RKT0_PKc in AsyncUDPSocket.cpp.o
      __ZN6google17MakeCheckOpStringIxiEEPSsRKT_RKT0_PKc in AsyncUDPSocket.cpp.o
      __ZN6google17MakeCheckOpStringINSt6thread2idES2_EEPSsRKT_RKT0_PKc in EventBase.cpp.o
      __ZN6google17MakeCheckOpStringIPN5folly10hazptr_objISt6atomicEES5_EEPSsRKT_RKT0_PKc in Request.cpp.o
      __ZN6google17MakeCheckOpStringIxiEEPSsRKT_RKT0_PKc in MemoryMapping.cpp.o
      __ZN6google17MakeCheckOpStringImmEEPSsRKT_RKT0_PKc in MemoryMapping.cpp.o
  "__ZN6google14FlagRegistererC1ISsEEPKcS3_S3_PT_S5_", referenced from:
      __GLOBAL__sub_I_Init.cpp in Init.cpp.o
  "__ZN6google20SetCommandLineOptionEPKcS1_", referenced from:
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIdE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseISsE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIyE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIjE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIxE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIiE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
      __ZNK5folly12_GLOBAL__N_122GFlagValueSemanticBaseIbE5parseERN5boost3anyERKSt6vectorISsSaISsEEb in ProgramOptions.cpp.o
ld: symbol(s) not found

@barracuda156
Copy link
Contributor Author

So the only problem remaining is failure to link with libgflags, it seems. Adding ldflags fixes Cmake test and Gflags namespace is recognized. However, the build still fails with the same undefined symbols.

This failure occurs at the very end of the build. If we can fix it, perhaps we have folly building on old systems (with few reservations, see my patch to CMakeLists).

I could try adding <gflags/gflags.h> to problematic files manually and change Cmake setting for Gflags namespace. Other than that, I dunno what to try.
Any ideas?

@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 13, 2022

@catap So the symbols differ in libgflags.

Details

Compare this:

"__ZN6google14FlagRegistererC1ISsEEPKcS3_S3_PT_S5_", referenced from:
      __GLOBAL__sub_I_Init.cpp in Init.cpp.o

To this:

10:~ svacchanda$ nm /opt/local/lib/libgflags.a | grep FlagRegisterer | c++filt
0000663c S google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
0000627c S google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)
0000659c S google::FlagRegisterer::FlagRegisterer<double>(char const*, char const*, char const*, double*, double*)
0000631c S google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)
000063bc S google::FlagRegisterer::FlagRegisterer<unsigned int>(char const*, char const*, char const*, unsigned int*, unsigned int*)
0000645c S google::FlagRegisterer::FlagRegisterer<long long>(char const*, char const*, char const*, long long*, long long*)
000064fc S google::FlagRegisterer::FlagRegisterer<unsigned long long>(char const*, char const*, char const*, unsigned long long*, unsigned long long*)
00006638 S google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
00006278 S google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)
00006598 S google::FlagRegisterer::FlagRegisterer<double>(char const*, char const*, char const*, double*, double*)
00006318 S google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)
000063b8 S google::FlagRegisterer::FlagRegisterer<unsigned int>(char const*, char const*, char const*, unsigned int*, unsigned int*)
00006458 S google::FlagRegisterer::FlagRegisterer<long long>(char const*, char const*, char const*, long long*, long long*)
000064f8 S google::FlagRegisterer::FlagRegisterer<unsigned long long>(char const*, char const*, char const*, unsigned long long*, unsigned long long*)
000065a0 S __ZN6google14FlagRegistererC4INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPKcS9_S9_PT_SB_
000061e4 S __ZN6google14FlagRegistererC4IbEEPKcS3_S3_PT_S5_
00006500 S __ZN6google14FlagRegistererC4IdEEPKcS3_S3_PT_S5_
00006280 S __ZN6google14FlagRegistererC4IiEEPKcS3_S3_PT_S5_
00006320 S __ZN6google14FlagRegistererC4IjEEPKcS3_S3_PT_S5_
000063c0 S __ZN6google14FlagRegistererC4IxEEPKcS3_S3_PT_S5_
00006460 S __ZN6google14FlagRegistererC4IyEEPKcS3_S3_PT_S5_
         U google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
         U google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char const*, bool*, bool*)
         U google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)
         U google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char const*, int*, int*)

@barracuda156
Copy link
Contributor Author

@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 13, 2022

@mascguy @aeiouaeiouaeiouaeiouaeiouaeiou Magic!

10:~ svacchanda$ port -v installed folly
The following ports are currently installed:
  folly @2022.08.01.00_0 (active) requested_variants='' platform='darwin 10' archs='ppc' date='2022-08-13T17:56:48+0700'

We will need a minor addition to this PR: #15678
And then all should work.

UPD. All done. I hope it fixes Intel builds too, though this has to be tested on buildbots.

@barracuda156 barracuda156 marked this pull request as ready for review August 13, 2022 11:29
@barracuda156
Copy link
Contributor Author

P. S. Making this work on PPC also requires a fix for Boost, so that context and coroutine packages get built successfully. I will make a PR for that soon. (Not relevant for 10.6 Intel and onwards.)

@barracuda156

This comment was marked as outdated.

@catap

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

@barracuda156

This comment was marked as outdated.

@barracuda156
Copy link
Contributor Author

@mascguy Are we ready to try this out?

Once/if everything builds fine across the board, I can finalize dependents (currently fbthrift does not yet pass checks, but possibly due to old folly in master).

Copy link
Member

@mascguy mascguy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, let's merge.

@mascguy mascguy merged commit 34a0786 into macports:master Aug 21, 2022
@mascguy

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

@barracuda156

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

@barracuda156

This comment was marked as outdated.

@barracuda156

This comment was marked as outdated.

@barracuda156

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

mascguy added a commit that referenced this pull request Aug 21, 2022
@kencu

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

@barracuda156

This comment was marked as outdated.

@mascguy

This comment was marked as outdated.

mascguy added a commit that referenced this pull request Aug 21, 2022
@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 22, 2022

@mascguy Thank you!

I see that Mavericks and Yosemite now build (they did not before, as I recall). Looks like we have fixed at least some systems :)

For TCP_INFO, I guess you are right, SDK still lacks something. (For earlier systems we disabled that, so no failure.) As a suboptimal fix, just including 10.11 should fix the build.

For 10.7 and 10.8: I cannot really fix something libcxx-related (at least right now), but the question is: is dependency on it really required? (Again, I do not know that.) GCC builds the port fine without libcxx.
I assume others will not be eager to switch to GCC for 10.6–10.8, so yeah, hopefully @kencu can guide us here.

mascguy referenced this pull request Aug 22, 2022
The recent update to folly broke building watchman. However, a simple
upgrade doesn't work, as they added yet another dependency to
something; their Eden SCM. Eden isn't in MacPorts, and I _really_
don't care about that one, so I disabled it -- which allowed pruning
the list of dependencies a bit. But they moved some code to rely on
it anyway, so I reverted those commits.

Since the update to Folly broke this, I added a comment to the port.
@barracuda156
Copy link
Contributor Author

@mascguy @kencu The issue with TARGET_OS_IPHONE apparently fixed by upstream: facebook/folly#1673 (comment)
This commit: facebook/folly@2fe2b63

@mascguy
Copy link
Member

mascguy commented Aug 22, 2022

@mascguy @kencu The issue with TARGET_OS_IPHONE apparently fixed by upstream: facebook/folly#1673 (comment)
This commit: facebook/folly@2fe2b63

Yep, sure enough, they needed to add the include.

@mascguy

This comment was marked as outdated.

@barracuda156
Copy link
Contributor Author

barracuda156 commented Aug 26, 2022

@mascguy Do you mean this?

if {[string match *clang* ${configure.compiler}]} {
     # Don’t use libcxx with gcc.
     legacysupport.use_mp_libcxx yes
 }

This excludes only gcc builds, which in Macports would mean <10 and Rosetta. Or do I miss something?
Also, libcxx is supported only with versions of gcc which are not yet allowed for Leopard anyway. (And even then, using libcxx with them would require fixing it for PPC.)

For TCP fast-open, this was already in folly portfile (not added by me):

Support for TCP fast-open was only added to macOS 10.11+

@mascguy
Copy link
Member

mascguy commented Aug 26, 2022

@mascguy Do you mean this?

if {[string match *clang* ${configure.compiler}]} {
     # Don’t use libcxx with gcc.
     legacysupport.use_mp_libcxx yes
 }

Ah, missed that block. We're good then!

@mascguy
Copy link
Member

mascguy commented Aug 26, 2022

For TCP fast-open, this was already in folly portfile (not added by me):

Support for TCP fast-open was only added to macOS 10.11+

Ah, gotcha. We might need to patch the source file in question, adding a minimum macOS version surrounding the identifier.

Not sure if it's that easy, but we can test next week.

@barracuda156
Copy link
Contributor Author

There seems to be some issue either with gcc12 or new icu, since folly build is now broken on both 10.6.8 Rosetta and 10.6 PPC for me (where I updated both). However with few extra patches everything built fine on 10.5.8 with gcc11 and old icu.

36-154:~ svacchanda$ port -v installed folly
The following ports are currently installed:
  folly @2022.08.08.00_0 (active) requested_variants='' platform='darwin 9' archs='ppc' date='2022-10-15T15:57:34+0800'
36-154:~ svacchanda$ port -v installed fizz
The following ports are currently installed:
  fizz @2022.08.08.00_0 (active) requested_variants='' platform='darwin 9' archs='ppc' date='2022-10-15T16:06:19+0800'
36-154:~ svacchanda$ port -v installed wangle
The following ports are currently installed:
  wangle @2022.08.08.00_0 (active) requested_variants='' platform='darwin 9' archs='ppc' date='2022-10-15T16:09:45+0800'
36-154:~ svacchanda$ port -v installed fbthrift
The following ports are currently installed:
  fbthrift @2022.08.08.00_0 (active) requested_variants='' platform='darwin 9' archs='ppc' date='2022-10-15T16:34:10+0800'

I will find out where things go wrong.

@barracuda156 barracuda156 deleted the folly branch November 12, 2022 06:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
6 participants