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

MBGC on OS X #3

Closed
karel-brinda opened this issue Nov 28, 2023 · 41 comments
Closed

MBGC on OS X #3

karel-brinda opened this issue Nov 28, 2023 · 41 comments

Comments

@karel-brinda
Copy link

Hello, is it currently possible to run MBGC on OS X? I tested it some time ago when it clearly wasn't possible to compile the code, but now I see there's a new release.

While the method works really nicely on Linux, the lack of support for OS X has prevented us from embedding it eg directly into pipelines for phylogenetic compression, especially to the downstream of https://github.com/karel-brinda/mof-compress.

@kowallus
Copy link
Owner

Hello. Yes, I have managed to run MBGC on OS X with ARM architecture. Still, I do not have a universal cmake receipt for linking openmp library. ARM version required also small modifications in the code. I can share here a working version of a mbgc project adapted to OS X, maybe it will work after small adjustments. I would appreciate help with this.

@karel-brinda
Copy link
Author

karel-brinda commented Nov 28, 2023

Thanks for the prompt answer! Is there any chance it could be added to OS X Bioconda? This is the way how we integrate all the software into our pipelines. If there're any difficulties, in my experience the community around is always extremely helpful with guiding/helping with the creation/improvement of recipes.

@kowallus
Copy link
Owner

Adding mbgc to OS X bioconda should be doable. I am not an OS X user or developer so it poses some extra difficulty. I will surely keep this in mind, however, my capabilities in this area are unfortunately limited.

@kowallus
Copy link
Owner

kowallus commented Dec 4, 2023

@karel-brinda, could you please try running the binary:
https://github.com/kowallus/mbgc/releases/download/v2.0/mbgc-2.0_x64-macos.tar.gz
on OS X?
I think it should work after brew install libomp but I am still figuring out how to prepare a bioconda compatible solution.

@karel-brinda
Copy link
Author

Thanks for the work @kowallus, going to try this now.

Once MBGC starts working on OS X, it will be a ready-to-use software instead of just an experimental implementation. This will very strongly increase the impact of your work.

@karel-brinda
Copy link
Author

karel-brinda commented Dec 4, 2023

Tried it, I'm getting the following error:

immortalite:mbgc-2.0_x64-macos karel$ brew install libomp
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 3 taps (homebrew/cask-fonts, homebrew/core and homebrew/cask).
==> New Formulae
cidr                            ocaml@4                         solo2-cli
==> New Casks
amie                            hapigo                          vimcal
brightintosh                    navigraph-charts                wiso-steuer-2024
cardo-update                    navigraph-simlink
font-rubik-glitch-pop           senabluetoothdevicemanager

You have 4 outdated formulae installed.

Warning: libomp 17.0.6 is already installed and up-to-date.
To reinstall 17.0.6, run:
  brew reinstall libomp


immortalite:mbgc-2.0_x64-macos karel$ ./mbgc 
dyld[72409]: Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: <81308242-71CA-37EB-B28E-42910E87869B> /private/tmp/~20231204105750/mbgc-2.0_x64-macos/mbgc
  Reason: tried: '/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/usr/local/opt/libomp/lib/libomp.dylib' (no such file), '/usr/local/lib/libomp.dylib' (no such file), '/usr/lib/libomp.dylib' (no such file, not in dyld cache)
Abort trap: 6

(including the output of Brew so that you know the version installed)

@kowallus
Copy link
Owner

kowallus commented Dec 4, 2023

Thank you. Unfortunately, it seems more difficult than it should be.

@karel-brinda
Copy link
Author

karel-brinda commented Dec 4, 2023

What I think is needed:

  1. Providing OS-X specific compilation instructions (eg GCC might be needed instead of CLang)
  2. Creating Bioconda binaries – openmp is quite standard now so there should be a lot of info about how to compile it, see eg Preferred solution for dealing with openmp? bioconda/bioconda-recipes#8869

@karel-brinda
Copy link
Author

See eg how it's done for COBS: https://github.com/bioconda/bioconda-recipes/blob/master/recipes/cobs/meta.yaml, which we also fixed for the use in combination with phylogenetic compression. One of the issues we were dealing with, was exactly the same one. @leoisl might be able to tell more.

@kowallus
Copy link
Owner

kowallus commented Dec 4, 2023

@karel-brinda there seems to be a temporary solution, could you check it (it works for me)?
Before running ./mbgc I needed to specify path to libomp.dylib in DYLD_LIBRARY_PATH variable. In my case I executed:
export DYLD_LIBRARY_PATH=/opt/miniconda3/pkgs/llvm-openmp-14.0.6-h0dcd299_0/lib/
It helped with 'Library not loaded' issue. I wonder if there are another issues I need to address.

@karel-brinda
Copy link
Author

immortalite:mbgc-2.0_x64-macos karel$ export DYLD_LIBRARY_PATH=~/miniconda/pkgs/llvm-openmp-17.0.4-hb6ac08f_0/lib/
immortalite:mbgc-2.0_x64-macos karel$ ./mbgc 
Illegal instruction: 4

Chip: Apple M1 Pro

@kowallus
Copy link
Owner

kowallus commented Dec 5, 2023

@karel-brinda I hope that this build will work for you (NOTE: it should without using export command) :
[mbgc-2.0_arm64-macos.tar.gz](https://github.com/kowallus/mbgc/files/13560040/mbgc-2.0_arm64-macos.tar.gz

I have a question. You have bioconda on M1. Does Bioconda deliver binaries also for ARM? The azure pipeline (used to verify packages) seems to rely on intel architecture and I am not sure if M1 users can take advantage of Bioconda in such cases.

@leoisl
Copy link

leoisl commented Dec 5, 2023

Bioconda does not deliver binaries for Aarch64: bioconda/bioconda-recipes#23454 , bioconda/bioconda-docs#16 . It might happen soon, but not yet available

@karel-brinda
Copy link
Author

Not completely straightforward (I had to manually open the two files first to confirm they can be trusted), but the binary is then working. Congrats!!

I guess you might somehow needed to sign it, but I have no idea how this is usually done on OS X.

Also, I've tried to compile it by myself from the current git repo, but got the following error:

$ cmake . 
-- The C compiler identification is AppleClang 15.0.0.15000040
-- The CXX compiler identification is AppleClang 15.0.0.15000040
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Processing Apple build
CMake Error at CMakeLists.txt:41 (message):
  Could not find clang or clang++ in specified paths:
  /usr/local/opt/llvm/bin; ; ; ;

@kowallus
Copy link
Owner

kowallus commented Dec 6, 2023

@karel-brinda thank you for help. It seems that I will be able to deploy macos build soon to conda. It passed the checks, but I am making some updates. I don't think that I will be able to provide 100% generic cmake (especially for macos), but I have made some corrections and would be grateful if you could try it.
CMakeLists.txt

I will not try to "sign" my binaries. If anyone could do it easily, it wouldn't make sense ;).

@karel-brinda
Copy link
Author

It's advancing:

l$ cm . 
-- The C compiler identification is AppleClang 15.0.0.15000040
-- The CXX compiler identification is AppleClang 15.0.0.15000040
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Processing Apple build
libomp not found in /usr/local/opt/libomp/lib/libomp.dylib
CMake Error at CMakeLists.txt:46 (message):
  LIBOMP not found!


-- Configuring incomplete, errors occurred!

@kowallus
Copy link
Owner

kowallus commented Dec 6, 2023

Another patch (UPDATED):
CMakeLists.txt

I think also that you may try activating your conda environment. cmake doesn't find ENV{CONDA_PREFIX} environment variable, but it seems you have it installed at ~/miniconda.

@karel-brinda
Copy link
Author

This is my output with the current version on git:

$ cmake .
-- The C compiler identification is AppleClang 15.0.0.15000040
-- The CXX compiler identification is AppleClang 15.0.0.15000040
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Processing Apple build
Conda not found
Proceeding with backup configuration
libomp not found in /usr/local/opt/libomp/lib/libomp.dylib
Could not find clang or clang++ in specified paths: /usr/local/opt/llvm/bin; ; ; ;
compilers: /Library/Developer/CommandLineTools/usr/bin/cc;/Library/Developer/CommandLineTools/usr/bin/c++
CLANG_PATH-NOTFOUND;;
-- Found OpenMP_C: -fopenmp -Wno-unused-command-line-argument  
-- Found OpenMP_CXX: -fopenmp -Wno-unused-command-line-argument  
-- Found OpenMP: TRUE   
-- Configuring done (17.8s)
-- Generating done (0.4s)
-- Build files have been written to: /Users/karel/github/mbgc
$ make -j
[  2%] Building CXX object CMakeFiles/mbgc.dir/main.cpp.o
[  5%] Building CXX object CMakeFiles/mbgc.dir/utils/helper.cpp.o
[  8%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_decompress.c.o
[ 10%] Building CXX object CMakeFiles/mbgc.dir/utils/input_with_libdeflate_wrapper.cpp.o
[ 13%] Building CXX object CMakeFiles/mbgc.dir/coders/SymbolsPackingFacility.cpp.o
[ 16%] Building CXX object CMakeFiles/mbgc.dir/coders/ContextAwareMismatchesCoder.cpp.o
[ 18%] Building CXX object CMakeFiles/mbgc.dir/matching/SlidingWindowSparseEMMatcher.cpp.o
[ 21%] Building CXX object CMakeFiles/mbgc.dir/utils/hashes/city.cpp.o
[ 24%] Building CXX object CMakeFiles/mbgc.dir/coders/VarLenDNACoder.cpp.o
[ 27%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Threads.c.o
[ 29%] Building CXX object CMakeFiles/mbgc.dir/utils/hashes/metrohash64.cpp.o
[ 32%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzmaDec.c.o
[ 35%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzmaEnc.c.o
[ 37%] Building CXX object CMakeFiles/mbgc.dir/coders/LzmaCoder.cpp.o
[ 40%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Enc.c.o
[ 43%] Building C object CMakeFiles/mbgc.dir/utils/hashes/xxhash.c.o
[ 45%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/x86/cpu_features.c.o
[ 48%] Building CXX object CMakeFiles/mbgc.dir/matching/SimpleSequenceMatcher.cpp.o
[ 51%] Building CXX object CMakeFiles/mbgc.dir/coders/PropsLibrary.cpp.o
[ 54%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzFind.c.o
[ 56%] Building CXX object CMakeFiles/mbgc.dir/coders/CodersLib.cpp.o
[ 59%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/crc32.c.o
[ 62%] Building CXX object CMakeFiles/mbgc.dir/matching/TextMatchers.cpp.o
[ 64%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/utils.c.o
[ 67%] Building CXX object CMakeFiles/mbgc.dir/coders/PpmdCoder.cpp.o
[ 70%] Building CXX object CMakeFiles/mbgc.dir/mbgccoder/MBGC_Encoder.cpp.o
[ 72%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7.c.o
[ 78%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/arm/cpu_features.c.o
[ 78%] Building CXX object CMakeFiles/mbgc.dir/matching/copmem/CopMEMMatcher.cpp.o
[ 83%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_decompress.c.o
[ 83%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_compress.c.o
[ 86%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Dec.c.o
[ 91%] Building CXX object CMakeFiles/mbgc.dir/mbgccoder/MBGC_Decoder.cpp.o
[ 91%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzFindMt.c.o
[ 94%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Alloc.c.o
[ 97%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_compress.c.o
clang: clang: error: unsupported option '-fopenmp'
clangerror: : unsupported option '-fopenmp'
error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/utils/helper.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/mbgc.dir/utils/input_with_libdeflate_wrapper.cpp.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_decompress.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/main.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/matching/SlidingWindowSparseEMMatcher.cpp.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/SymbolsPackingFacility.cpp.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/utils/hashes/city.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/matching/SimpleSequenceMatcher.cpp.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Enc.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/Threads.c.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/VarLenDNACoder.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/LzmaCoder.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/CodersLib.cpp.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/LzFind.c.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/utils.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/utils/hashes/xxhash.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/LzmaEnc.c.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/crc32.c.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/mbgccoder/MBGC_Encoder.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/arm/cpu_features.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/utils/hashes/metrohash64.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/ContextAwareMismatchesCoder.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/matching/TextMatchers.cpp.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/Ppmd7.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/PropsLibrary.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_compress.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/x86/cpu_features.c.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_decompress.c.o] Error 1
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/LzmaDec.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/PpmdCoder.cpp.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Dec.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/matching/copmem/CopMEMMatcher.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_compress.c.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/LzFindMt.c.o] Error 1
make[2]: *** [CMakeFiles/mbgc.dir/mbgccoder/MBGC_Decoder.cpp.o] Error 1
clang: error: unsupported option '-fopenmp'
make[2]: *** [CMakeFiles/mbgc.dir/coders/lzma/Alloc.c.o] Error 1
make[1]: *** [CMakeFiles/mbgc.dir/all] Error 2
make: *** [all] Error 2

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

Thank you sincerely @karel-brinda. The detected (default?) compiler is not clang. It might be a problem. However, it is above my pay grade :). I will focus on providing mbgc through bioconda and preparing working (yet unsigned) binaries.

@karel-brinda
Copy link
Author

This is what happens when I ask for using GCC from Homebrew:

$ cmake . -D CMAKE_CXX_COMPILER=/opt/homebrew/bin/g++-13 -D CMAKE_C_COMPILER=/opt/homebrew/bin/gcc-13 
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/homebrew/bin/gcc-13 - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/homebrew/bin/g++-13 - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Processing Apple build
Conda not found
Proceeding with backup configuration
libomp not found in /usr/local/opt/libomp/lib/libomp.dylib
Could not find clang or clang++ in specified paths: /usr/local/opt/llvm/bin; ; ; ;
compilers: /opt/homebrew/bin/gcc-13;/opt/homebrew/bin/g++-13
CLANG_PATH-NOTFOUND;;
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- Configuring done (62.7s)
-- Generating done (0.4s)
-- Build files have been written to: /Users/karel/github/mbgc
$ mj
[  2%] Building CXX object CMakeFiles/mbgc.dir/main.cpp.o
[  5%] Building CXX object CMakeFiles/mbgc.dir/utils/helper.cpp.o
[  8%] Building CXX object CMakeFiles/mbgc.dir/coders/SymbolsPackingFacility.cpp.o
[ 10%] Building CXX object CMakeFiles/mbgc.dir/coders/ContextAwareMismatchesCoder.cpp.o
[ 13%] Building CXX object CMakeFiles/mbgc.dir/utils/input_with_libdeflate_wrapper.cpp.o
[ 18%] Building CXX object CMakeFiles/mbgc.dir/utils/hashes/metrohash64.cpp.o
[ 18%] Building C object CMakeFiles/mbgc.dir/utils/hashes/xxhash.c.o
[ 21%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzFind.c.o
[ 24%] Building CXX object CMakeFiles/mbgc.dir/matching/SlidingWindowSparseEMMatcher.cpp.o
[ 27%] Building CXX object CMakeFiles/mbgc.dir/matching/SimpleSequenceMatcher.cpp.o
[ 29%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Enc.c.o
[ 32%] Building CXX object CMakeFiles/mbgc.dir/coders/CodersLib.cpp.o
[ 35%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzmaEnc.c.o
[ 37%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Threads.c.o
[ 40%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7.c.o
[ 43%] Building CXX object CMakeFiles/mbgc.dir/matching/TextMatchers.cpp.o
[ 45%] Building CXX object CMakeFiles/mbgc.dir/coders/PpmdCoder.cpp.o
[ 48%] Building CXX object CMakeFiles/mbgc.dir/matching/copmem/CopMEMMatcher.cpp.o
[ 51%] Building CXX object CMakeFiles/mbgc.dir/coders/VarLenDNACoder.cpp.o
[ 54%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_decompress.c.o
[ 56%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/crc32.c.o
[ 59%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/utils.c.o
[ 62%] Building CXX object CMakeFiles/mbgc.dir/mbgccoder/MBGC_Encoder.cpp.o
[ 64%] Building CXX object CMakeFiles/mbgc.dir/utils/hashes/city.cpp.o
[ 67%] Building CXX object CMakeFiles/mbgc.dir/mbgccoder/MBGC_Decoder.cpp.o
[ 72%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzFindMt.c.o
[ 72%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_decompress.c.o
[ 75%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Dec.c.o
[ 78%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Alloc.c.o
[ 81%] Building CXX object CMakeFiles/mbgc.dir/coders/LzmaCoder.cpp.o
[ 86%] Building CXX object CMakeFiles/mbgc.dir/coders/PropsLibrary.cpp.o
[ 86%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzmaDec.c.o
[ 89%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/x86/cpu_features.c.o
[ 94%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_compress.c.o
[ 94%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_compress.c.o
[ 97%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/arm/cpu_features.c.o
[100%] Linking CXX executable mbgc
ld: warning: -rpath missing <path>
ld: warning: ignoring duplicate libraries: '-lgcc'
ld: warning: search path '-fopenmp' not found
ld: warning: search path '-fopenmp' not found
0  0x1042a3648  __assert_rtn + 72
1  0x1041d7fac  ld::AtomPlacement::findAtom(unsigned char, unsigned long long, ld::AtomPlacement::AtomLoc const*&, long long&) const + 1204
2  0x1041ed924  ld::InputFiles::SliceParser::parseObjectFile(mach_o::Header const*) const + 15164
3  0x1041fae30  ld::InputFiles::parseAllFiles(void (ld::AtomFile const*) block_pointer)::$_7::operator()(unsigned long, ld::FileInfo const&) const + 420
4  0x19db98440  _dispatch_client_callout2 + 20
5  0x19dbabf1c  _dispatch_apply_invoke + 224
6  0x19db98400  _dispatch_client_callout + 20
7  0x19dba9fb8  _dispatch_root_queue_drain + 684
8  0x19dbaa6c0  _dispatch_worker_thread2 + 164
9  0x19dd44038  _pthread_wqthread + 228
ld: Assertion failed: (resultIndex < sectData.atoms.size()), function findAtom, file Relocations.cpp, line 1336.
collect2: error: ld returned 1 exit status
make[2]: *** [mbgc] Error 1
make[1]: *** [CMakeFiles/mbgc.dir/all] Error 2
make: *** [all] Error 2

@karel-brinda
Copy link
Author

One hint about conda paths – I need to specify the path manually as an environmental variable for this to work. In my case:

export CONDA_PREFIX=~/miniconda

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

I think that OPENMP 5.0 is required

-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  

and this:

[100%] Linking CXX executable mbgc
ld: warning: -rpath missing <path>
ld: warning: ignoring duplicate libraries: '-lgcc'
ld: warning: search path '-fopenmp' not found
ld: warning: search path '-fopenmp' not found

is probably a problem with cmake. In such case, it might be better replacing:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format -Wl,-rpath ${LIBOMP_DIRECTORY} -L${LIBOMP_DIRECTORY}")

with

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format")

or more generally:

    if(LIBOMP_DIRECTORY)
        link_directories("${LIBOMP_DIRECTORY}")
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath ${LIBOMP_DIRECTORY} -L${LIBOMP_DIRECTORY}")
    endif()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format")

however, no guarantees.

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

One hint about conda paths – I need to specify the path manually as an environmental variable for this to work. In my case:

export CONDA_PREFIX=~/miniconda

I thought so. In my case, I have this already set after installing miniconda3. Is it enough to build mbgc?

@karel-brinda
Copy link
Author

Which packages are need from Conda? llvm is not sufficient.

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

Which packages are need from Conda? llvm is not sufficient.

Have you used conda-forge channel?
I it doesn't install required compilers, try the following packages: clang, clangxx and don't forget about llvm-openmp

@karel-brinda
Copy link
Author

karel-brinda commented Dec 7, 2023

Not working completely yet, but this helped!! Indeed these packages were missing.

Now I'm getting the following error:

$ cmake . 
-- The C compiler identification is AppleClang 15.0.0.15000040
-- The CXX compiler identification is AppleClang 15.0.0.15000040
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Processing Apple build
Found LIBOMP: /Users/karel/miniconda/lib
compilers: /Users/karel/miniconda/bin/clang;/Users/karel/miniconda/bin/clang++
/Users/karel/miniconda/bin/clang;/Users/karel/miniconda/bin;/Users/karel/miniconda
-- Found OpenMP_C: -fopenmp -Wno-unused-command-line-argument  
-- Found OpenMP_CXX: -fopenmp -Wno-unused-command-line-argument  
-- Found OpenMP: TRUE   
-- Configuring done (17.6s)
-- Generating done (0.5s)
-- Build files have been written to: /Users/karel/github/mbgc
immortalite:mbgc karel$ make -j
[  2%] Building CXX object CMakeFiles/mbgc.dir/main.cpp.o
[  5%] Building CXX object CMakeFiles/mbgc.dir/utils/helper.cpp.o
[  8%] Building C object CMakeFiles/mbgc.dir/utils/hashes/xxhash.c.o
[ 10%] Building CXX object CMakeFiles/mbgc.dir/utils/input_with_libdeflate_wrapper.cpp.o
[ 16%] Building CXX object CMakeFiles/mbgc.dir/coders/ContextAwareMismatchesCoder.cpp.o
[ 16%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzFindMt.c.o
[ 18%] Building CXX object CMakeFiles/mbgc.dir/utils/hashes/city.cpp.o
[ 21%] Building CXX object CMakeFiles/mbgc.dir/matching/copmem/CopMEMMatcher.cpp.o
[ 27%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzmaEnc.c.o
[ 27%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzFind.c.o
[ 29%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/arm/cpu_features.c.o
[ 32%] Building CXX object CMakeFiles/mbgc.dir/utils/hashes/metrohash64.cpp.o
[ 35%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Threads.c.o
[ 37%] Building C object CMakeFiles/mbgc.dir/coders/lzma/LzmaDec.c.o
[ 40%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Enc.c.o
[ 43%] Building CXX object CMakeFiles/mbgc.dir/coders/VarLenDNACoder.cpp.o
[ 45%] Building CXX object CMakeFiles/mbgc.dir/matching/SimpleSequenceMatcher.cpp.o
[ 48%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7.c.o
[ 51%] Building CXX object CMakeFiles/mbgc.dir/coders/PropsLibrary.cpp.o
[ 54%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/utils.c.o
[ 56%] Building CXX object CMakeFiles/mbgc.dir/mbgccoder/MBGC_Decoder.cpp.o
[ 59%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_compress.c.o
[ 62%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Ppmd7Dec.c.o
[ 64%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/x86/cpu_features.c.o
[ 67%] Building C object CMakeFiles/mbgc.dir/coders/lzma/Alloc.c.o
[ 70%] Building CXX object CMakeFiles/mbgc.dir/coders/LzmaCoder.cpp.o
[ 72%] Building CXX object CMakeFiles/mbgc.dir/coders/CodersLib.cpp.o
[ 75%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_compress.c.o
[ 78%] Building CXX object CMakeFiles/mbgc.dir/coders/SymbolsPackingFacility.cpp.o
[ 81%] Building CXX object CMakeFiles/mbgc.dir/matching/TextMatchers.cpp.o
[ 86%] Building CXX object CMakeFiles/mbgc.dir/coders/PpmdCoder.cpp.o
[ 86%] Building CXX object CMakeFiles/mbgc.dir/matching/SlidingWindowSparseEMMatcher.cpp.o
[ 91%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/gzip_decompress.c.o
[ 91%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/deflate_decompress.c.o
[ 94%] Building CXX object CMakeFiles/mbgc.dir/mbgccoder/MBGC_Encoder.cpp.o
[ 97%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/crc32.c.o
In file included from /Users/karel/github/mbgc/mbgccoder/MBGC_Decoder.cpp:1:
In file included from /Users/karel/github/mbgc/mbgccoder/MBGC_Decoder.h:7:
/Users/karel/github/mbgc/mbgccoder/MBGC_Params.h:6:10: fatal error: 'omp.h' file not found
    6 | #include <omp.h>
      |          ^~~~~~~
In file included from /Users/karel/github/mbgc/utils/input_with_libdeflate_wrapper.cpp:2:
/Users/karel/github/mbgc/utils/../mbgccoder/MBGC_Params.h:6:10: fatal error: 'omp.h' file not found
    6 | #include <omp.h>
      |          ^~~~~~~
In file included from /Users/karel/github/mbgc/main.cpp:4:
In file included from /Users/karel/github/mbgc/mbgccoder/MBGC_Encoder.h:8:
/Users/karel/github/mbgc/mbgccoder/MBGC_Params.h:6:10: fatal error: 'omp.h' file not found
    6 | #include <omp.h>
      |          ^~~~~~~
In file included from /Users/karel/github/mbgc/matching/SimpleSequenceMatcher.cpp:5:
/Users/karel/github/mbgc/matching/../mbgccoder/MBGC_Params.h:6:10: fatal error: 'omp.h' file not found
    6 | #include <omp.h>
      |          ^~~~~~~
/Users/karel/github/mbgc/matching/copmem/CopMEMMatcher.cpp:45:10: fatal error: 'omp.h' file not found
   45 | #include <omp.h>
      |          ^~~~~~~
/Users/karel/github/mbgc/matching/SlidingWindowSparseEMMatcher.cpp:47:10: fatal error: 'omp.h' file not found
   47 | #include <omp.h>
      |          ^~~~~~~
/Users/karel/github/mbgc/coders/CodersLib.cpp:6:10: fatal error: 'omp.h' file not found
    6 | #include <omp.h>
      |          ^~~~~~~
In file included from /Users/karel/github/mbgc/mbgccoder/MBGC_Encoder.cpp:1:
In file included from /Users/karel/github/mbgc/mbgccoder/MBGC_Encoder.h:8:
/Users/karel/github/mbgc/mbgccoder/MBGC_Params.h:6:10: fatal error: 'omp.h' file not found
    6 | #include <omp.h>
      |          ^~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/utils/input_with_libdeflate_wrapper.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/main.cpp.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/matching/SimpleSequenceMatcher.cpp.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/mbgccoder/MBGC_Decoder.cpp.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/matching/copmem/CopMEMMatcher.cpp.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/matching/SlidingWindowSparseEMMatcher.cpp.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/coders/CodersLib.cpp.o] Error 1
1 error generated.
make[2]: *** [CMakeFiles/mbgc.dir/mbgccoder/MBGC_Encoder.cpp.o] Error 1
make[1]: *** [CMakeFiles/mbgc.dir/all] Error 2
make: *** [all] Error 2

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

There is omp.h in my includes:

(base) coach@Tomaszs-iMac build % ls ${CONDA_PREFIX}/include/omp.h   
/opt/miniconda3/include/omp.h
(base) coach@Tomaszs-iMac build % ${CONDA_PREFIX}/bin/clang --version
clang version 14.0.6
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /opt/miniconda3/bin

If it is not there it might not work.

@karel-brinda
Copy link
Author

In my case, it's there too:

$ find ~/miniconda -name 'omp.h'
/Users/karel/miniconda/include/omp.h
/Users/karel/miniconda/pkgs/llvm-openmp-17.0.6-hb6ac08f_0/include/omp.h
/Users/karel/miniconda/pkgs/llvm-openmp-17.0.6-hb6ac08f_0/lib/clang/17.0.6/include/omp.h
/Users/karel/miniconda/pkgs/llvm-openmp-8.0.1-h770b8ee_0/include/omp.h
/Users/karel/miniconda/pkgs/llvm-openmp-8.0.1-h770b8ee_0/lib/clang/8.0.1/include/omp.h
/Users/karel/miniconda/lib/clang/17.0.6/include/omp.h

@karel-brinda
Copy link
Author

I guess the include dir is just not added to the path by CMake

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

I guess the include dir is just not added to the path by CMake

Please, check if making it explicit will help by adding include_directories(${YOUR_DIRECTORY}) in cmake, e.g. after:

set(OPENMP_INCLUDES "${COMPILER_DIR}/include")

add

include_directories("${OPENMP_INCLUDES}")

@karel-brinda
Copy link
Author

Now compilation finished and it only doesn't link:


[ 97%] Building C object CMakeFiles/mbgc.dir/coders/libdeflate/lib/x86/cpu_features.c.o
[100%] Linking CXX executable mbgc
ld: warning: duplicate -rpath '/Users/karel/miniconda/lib' ignored
ld: warning: duplicate -rpath '/Users/karel/miniconda/lib' ignored
ld: warning: duplicate -rpath '/Users/karel/miniconda/lib' ignored
ld: warning: duplicate -rpath '/Users/karel/miniconda/lib' ignored
ld: warning: ignoring file '/Users/karel/miniconda/lib/libomp.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/Users/karel/miniconda/lib/libc++.1.0.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: Undefined symbols:
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::find(char, unsigned long) const, referenced from:
      PgHelpers::createFolders(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) in helper.cpp.o
      PgHelpers::createFolders(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) in helper.cpp.o
      PgHelpers::normalizePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int&, int&, bool) in helper.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      PgHelpers::VarLenDNACoder::initUsing(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in VarLenDNACoder.cpp.o
      PgHelpers::VarLenDNACoder::initUsing(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in VarLenDNACoder.cpp.o
      ...
  std::__1::__match_any_but_newline<char>::__exec(std::__1::__state<char>&) const, referenced from:
      vtable for std::__1::__match_any_but_newline<char> in helper.cpp.o
  std::__1::locale::name() const, referenced from:
      std::__1::__bracket_expression<char, std::__1::regex_traits<char>>::__bracket_expression[abi:v160006](std::__1::regex_traits<char> const&, std::__1::__node<char>*, bool, bool, bool) in helper.cpp.o
  std::__1::locale::has_facet(std::__1::locale::id&) const, referenced from:
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::basic_filebuf() in helper.cpp.o
  std::__1::locale::use_facet(std::__1::locale::id&) const, referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::basic_filebuf() in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::imbue(std::__1::locale const&) in helper.cpp.o
      ...
  std::__1::ios_base::getloc() const, referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in helper.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::endl[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&) in SlidingWindowSparseEMMatcher.cpp.o
      ...
  std::logic_error::logic_error(char const*), referenced from:
      std::length_error::length_error[abi:v160006](char const*) in main.cpp.o
      std::out_of_range::out_of_range[abi:v160006](char const*) in MBGC_Decoder.cpp.o
  std::length_error::~length_error(), referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.cpp.o
  std::out_of_range::~out_of_range(), referenced from:
      std::__1::__throw_out_of_range[abi:v160006](char const*) in MBGC_Decoder.cpp.o
  std::bad_array_new_length::bad_array_new_length(), referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in helper.cpp.o
  std::bad_array_new_length::~bad_array_new_length(), referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in helper.cpp.o
  std::__1::regex_error::regex_error(std::__1::regex_constants::error_type), referenced from:
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)12>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)16>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)3>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)17>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)14>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)6>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)11>() in helper.cpp.o
      ...
  std::__1::regex_error::~regex_error(), referenced from:
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)12>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)16>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)3>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)17>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)14>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)6>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)11>() in helper.cpp.o
      ...
  std::__1::__next_prime(unsigned long), referenced from:
      std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*>*>, bool> std::__1::__hash_table<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>::__emplace_unique_key_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&&) in MBGC_Encoder.cpp.o
      std::__1::pair<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*>*>, bool> std::__1::__hash_table<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>::__emplace_unique_key_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&&) in MBGC_Encoder.cpp.o
      MBGC_Encoder::loadFileNames() in MBGC_Encoder.cpp.o
      MBGC_Encoder::loadFileNames() in MBGC_Encoder.cpp.o
      void MBGC_Encoder::appendTemplate<true>(MBGC_Decoder<true>*, MBGC_Params&) in MBGC_Encoder.cpp.o
      void MBGC_Encoder::appendTemplate<true>(MBGC_Decoder<true>*, MBGC_Params&) in MBGC_Encoder.cpp.o
      void MBGC_Encoder::appendTemplate<false>(MBGC_Decoder<false>*, MBGC_Params&) in MBGC_Encoder.cpp.o
      void MBGC_Encoder::appendTemplate<false>(MBGC_Decoder<false>*, MBGC_Params&) in MBGC_Encoder.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append(char const*), referenced from:
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      PgTools::SimpleSequenceMatcher::getTotalMatchStat(unsigned long) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::getTotalMatchStat(unsigned long) in SimpleSequenceMatcher.cpp.o
      parallelBlocksCompress(unsigned char*&, unsigned long&, unsigned char const*, unsigned long, ParallelBlocksCoderProps*, double, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      parallelBlocksCompress(unsigned char*&, unsigned long&, unsigned char const*, unsigned long, ParallelBlocksCoderProps*, double, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append(char const*, unsigned long), referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      ___cxx_global_var_init.6 in main.cpp.o
      ___cxx_global_var_init.6 in main.cpp.o
      ___cxx_global_var_init.6 in main.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::append(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, unsigned long), referenced from:
      PgIndex::SymbolsPackingFacility::reverseSequence(unsigned char const*, unsigned long, unsigned long) in SymbolsPackingFacility.cpp.o
      PgIndex::SymbolsPackingFacility::reverseSequence(unsigned char const*, unsigned long, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in SymbolsPackingFacility.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      MBGC_Encoder::processFileName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in MBGC_Encoder.cpp.o
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::insert(unsigned long, char const*), referenced from:
      mbgcInOpen(char const*) in input_with_libdeflate_wrapper.cpp.o
      parallelBlocksCompress(unsigned char*&, unsigned long&, unsigned char const*, unsigned long, ParallelBlocksCoderProps*, double, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      parallelBlocksCompress(unsigned char*&, unsigned long&, unsigned char const*, unsigned long, ParallelBlocksCoderProps*, double, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      PpmdCoderProps::log() in PropsLibrary.cpp.o
      PgHelpers::VarLenDNACoderProps::log() in PropsLibrary.cpp.o
      CompoundCoderProps::log() in PropsLibrary.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::resize(unsigned long, char), referenced from:
      printVersion(bool) in main.cpp.o
      printEncodeUsage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, bool) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>>::overflow(int) in main.cpp.o
      printDecodingUsage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, bool) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      printAppendUsage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool) in main.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::reserve(unsigned long), referenced from:
      MBGC_Encoder::encodeTargetSequence(int, bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetSequence(int, bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::prepareHeadersStreams() in MBGC_Encoder.cpp.o
      MBGC_Encoder::prepareHeadersStreams() in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::decodeTarget(unsigned long, int) in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::decodeTarget(unsigned long, int) in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::decodeTarget(unsigned long, int) in MBGC_Decoder.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::push_back(char), referenced from:
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>>::overflow(int) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> std::__1::regex_replace[abi:v160006]<std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::regex_traits<char>, char>(std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, std::__1::basic_regex<char, std::__1::regex_traits<char>> const&, char const*, std::__1::regex_constants::match_flag_type) in helper.cpp.o
      std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> std::__1::regex_replace[abi:v160006]<std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::regex_traits<char>, char>(std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, std::__1::basic_regex<char, std::__1::regex_traits<char>> const&, char const*, std::__1::regex_constants::match_flag_type) in helper.cpp.o
      std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> std::__1::regex_replace[abi:v160006]<std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::regex_traits<char>, char>(std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, std::__1::basic_regex<char, std::__1::regex_traits<char>> const&, char const*, std::__1::regex_constants::match_flag_type) in helper.cpp.o
      std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> std::__1::regex_replace[abi:v160006]<std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::regex_traits<char>, char>(std::__1::back_insert_iterator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__wrap_iter<char const*>, std::__1::__wrap_iter<char const*>, std::__1::basic_regex<char, std::__1::regex_traits<char>> const&, char const*, std::__1::regex_constants::match_flag_type) in helper.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&), referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long, unsigned long, std::__1::allocator<char> const&), referenced from:
      _main in main.cpp.o
      PgHelpers::createFolders(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) in helper.cpp.o
      PgHelpers::normalizePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int&, int&, bool) in helper.cpp.o
      PgHelpers::normalizePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int&, int&, bool) in helper.cpp.o
      PgHelpers::normalizePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int&, int&, bool) in helper.cpp.o
      PgHelpers::normalizePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int&, int&, bool) in helper.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_string(), referenced from:
      ___cxx_global_var_init.4 in main.cpp.o
      ___cxx_global_var_init.6 in main.cpp.o
      ___cxx_global_var_init.10 in main.cpp.o
      ___cxx_global_var_init.14 in main.cpp.o
      ___cxx_global_var_init.16 in main.cpp.o
      ___cxx_global_var_init.17 in main.cpp.o
      __GLOBAL__sub_I_main.cpp in main.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&), referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      MBGC_Params::setSeqListFileName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      ...
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::operator=(char), referenced from:
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_character_escape<char const*>(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*) in helper.cpp.o
      ...
  std::__1::basic_istream<char, std::__1::char_traits<char>>::get(), referenced from:
      PgHelpers::confirmTextReadMode(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in helper.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      MBGC_Params::read(std::__1::basic_istream<char, std::__1::char_traits<char>>&) in MBGC_Decoder.cpp.o
      ...
  std::__1::basic_istream<char, std::__1::char_traits<char>>::read(char*, long), referenced from:
      PgHelpers::readArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, void*, unsigned long) in helper.cpp.o
      PgHelpers::readArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, void*, unsigned long) in helper.cpp.o
      PgHelpers::readWholeArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long&) in helper.cpp.o
      PgHelpers::readWholeArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long&) in helper.cpp.o
      PgHelpers::readReadLengthValue(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned short&) in helper.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      ...
  std::__1::basic_istream<char, std::__1::char_traits<char>>::seekg(std::__1::fpos<__mbstate_t>), referenced from:
      parallelBlocksCompress(unsigned char*&, unsigned long&, unsigned char const*, unsigned long, ParallelBlocksCoderProps*, double, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
  std::__1::basic_istream<char, std::__1::char_traits<char>>::seekg(long long, std::__1::ios_base::seekdir), referenced from:
      PgHelpers::readWholeArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long&) in helper.cpp.o
      PgHelpers::readWholeArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long&) in helper.cpp.o
  std::__1::basic_istream<char, std::__1::char_traits<char>>::tellg(), referenced from:
      PgHelpers::readWholeArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long&) in helper.cpp.o
  std::__1::basic_istream<char, std::__1::char_traits<char>>::sentry::sentry(std::__1::basic_istream<char, std::__1::char_traits<char>>&, bool), referenced from:
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in helper.cpp.o
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::getline[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, char) in MBGC_Encoder.cpp.o
  std::__1::basic_istream<char, std::__1::char_traits<char>>::~basic_istream(), referenced from:
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_ifstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in SimpleSequenceMatcher.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
      construction vtable for std::__1::basic_istream<char, WrapperStrStream::char_traits<char>>-in-WrapperStrStream in MBGC_Decoder.cpp.o
  std::__1::basic_istream<char, std::__1::char_traits<char>>::~basic_istream(), referenced from:
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_ifstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in SimpleSequenceMatcher.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
      construction vtable for std::__1::basic_istream<char, WrapperStrStream::char_traits<char>>-in-WrapperStrStream in MBGC_Decoder.cpp.o
  std::__1::basic_istream<char, std::__1::char_traits<char>>::~basic_istream(), referenced from:
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      std::__1::basic_ifstream<char, std::__1::char_traits<char>>::~basic_ifstream() in helper.cpp.o
      std::__1::basic_ifstream<char, std::__1::char_traits<char>>::~basic_ifstream() in helper.cpp.o
      virtual thunk to std::__1::basic_ifstream<char, std::__1::char_traits<char>>::~basic_ifstream() in helper.cpp.o
      virtual thunk to std::__1::basic_ifstream<char, std::__1::char_traits<char>>::~basic_ifstream() in helper.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::restoreRCMatchedSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long) in SimpleSequenceMatcher.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::put(char), referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::endl[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::flush(), referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::endl[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::write(char const*, long), referenced from:
      PgHelpers::writeArray(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, void*, unsigned long, bool) in helper.cpp.o
      PgHelpers::writeArray(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, void*, unsigned long, bool) in helper.cpp.o
      PgHelpers::writeArray(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, void*, unsigned long, bool) in helper.cpp.o
      PgHelpers::writeUIntByteFrugal(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, unsigned long long) in helper.cpp.o
      PgHelpers::writeUIntByteFrugal(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, unsigned long long) in helper.cpp.o
      PgHelpers::writeUIntWordFrugal(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, unsigned long long) in helper.cpp.o
      PgHelpers::writeUIntWordFrugal(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, unsigned long long) in helper.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char>>&), referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::sentry::~sentry(), referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::~basic_ostream(), referenced from:
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ofstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::~basic_ostream(), referenced from:
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      __GLOBAL__sub_I_helper.cpp in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ofstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::~basic_ostream(), referenced from:
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      virtual thunk to std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      virtual thunk to std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::operator<<(int), referenced from:
      PgIndex::SymbolsPackingFacility::SymbolsPackingFacility(std::__1::vector<char, std::__1::allocator<char>>, bool) in SymbolsPackingFacility.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowExpSparseEMMatcher::SlidingWindowExpSparseEMMatcher(unsigned long, unsigned int, int, int, int, unsigned int) in SlidingWindowSparseEMMatcher.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::operator<<(unsigned int), referenced from:
      SlidingWindowSparseEMMatcher::displayParams() in SlidingWindowSparseEMMatcher.cpp.o
      CopMEMMatcher::displayParams() in CopMEMMatcher.cpp.o
      void CopMEMMatcher::processExactMatchQueryTight<unsigned long long, unsigned long long>(std::__1::pair<unsigned long long*, unsigned long long*>, std::__1::vector<PgTools::TextMatch, std::__1::allocator<PgTools::TextMatch>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, bool, unsigned int) in CopMEMMatcher.cpp.o
      void CopMEMMatcher::processExactMatchQueryTight<unsigned long long, unsigned int>(std::__1::pair<unsigned long long*, unsigned int*>, std::__1::vector<PgTools::TextMatch, std::__1::allocator<PgTools::TextMatch>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, bool, unsigned int) in CopMEMMatcher.cpp.o
      void CopMEMMatcher::processExactMatchQueryTight<unsigned int, unsigned int>(std::__1::pair<unsigned int*, unsigned int*>, std::__1::vector<PgTools::TextMatch, std::__1::allocator<PgTools::TextMatch>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, bool, unsigned int) in CopMEMMatcher.cpp.o
      PpmdUncompress(unsigned char*, unsigned long*, unsigned char const*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in PpmdCoder.cpp.o
      PpmdUncompress(unsigned char*, unsigned long*, unsigned char const*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in PpmdCoder.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::operator<<(unsigned long), referenced from:
      PgHelpers::writeArray(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, void*, unsigned long, bool) in helper.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::writeArrayToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*, unsigned long) in helper.cpp.o
      PgTools::SimpleSequenceMatcher::SimpleSequenceMatcher(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned int, unsigned int) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::exactMatchSequence(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::markAndRemoveExactMatches(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::markAndRemoveExactMatches(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::markAndRemoveExactMatches(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      ...
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::operator<<(long long), referenced from:
      PgHelpers::toString(long double, unsigned char) in helper.cpp.o
      MBGC_Decoder<true>::decode() in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::decode() in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::decode() in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::decode() in MBGC_Decoder.cpp.o
  std::__1::basic_ostream<char, std::__1::char_traits<char>>::operator<<(unsigned long long), referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::writeArrayToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*, unsigned long) in helper.cpp.o
      PgHelpers::toString(unsigned long long) in helper.cpp.o
      ...
  std::__1::basic_iostream<char, std::__1::char_traits<char>>::~basic_iostream(), referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  std::__1::basic_iostream<char, std::__1::char_traits<char>>::~basic_iostream(), referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  std::__1::basic_iostream<char, std::__1::char_traits<char>>::~basic_iostream(), referenced from:
      PgHelpers::openLogFile(char*) in helper.cpp.o
      std::__1::basic_fstream<char, std::__1::char_traits<char>>::~basic_fstream() in helper.cpp.o
      std::__1::basic_fstream<char, std::__1::char_traits<char>>::~basic_fstream() in helper.cpp.o
      non-virtual thunk to std::__1::basic_fstream<char, std::__1::char_traits<char>>::~basic_fstream() in helper.cpp.o
      non-virtual thunk to std::__1::basic_fstream<char, std::__1::char_traits<char>>::~basic_fstream() in helper.cpp.o
      virtual thunk to std::__1::basic_fstream<char, std::__1::char_traits<char>>::~basic_fstream() in helper.cpp.o
      virtual thunk to std::__1::basic_fstream<char, std::__1::char_traits<char>>::~basic_fstream() in helper.cpp.o
      ...
  std::__1::__get_classname(char const*, bool), referenced from:
      unsigned int std::__1::regex_traits<char>::__lookup_classname<char const*>(char const*, char const*, bool, char) const in helper.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::sync(), referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      vtable for NullBuffer in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::imbue(std::__1::locale const&), referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      vtable for NullBuffer in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::uflow(), referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      vtable for NullBuffer in helper.cpp.o
      vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char>> in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::setbuf(char*, long), referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      vtable for NullBuffer in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::xsgetn(char*, long), referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      vtable for NullBuffer in helper.cpp.o
      vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char>> in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::xsputn(char const*, long), referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      vtable for NullBuffer in helper.cpp.o
      vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char>> in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::seekoff(long long, std::__1::ios_base::seekdir, unsigned int), referenced from:
      vtable for NullBuffer in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::seekpos(std::__1::fpos<__mbstate_t>, unsigned int), referenced from:
      vtable for NullBuffer in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::overflow(int), referenced from:
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::pbackfail(int), referenced from:
      vtable for NullBuffer in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::showmanyc(), referenced from:
      vtable for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      vtable for NullBuffer in helper.cpp.o
      vtable for std::__1::basic_filebuf<char, std::__1::char_traits<char>> in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::underflow(), referenced from:
      vtable for NullBuffer in helper.cpp.o
      vtable for WrapperStreamBuf in MBGC_Decoder.cpp.o
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::basic_streambuf(), referenced from:
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::basic_filebuf() in helper.cpp.o
      PgHelpers::toString(unsigned long long) in helper.cpp.o
      PgHelpers::toMB(unsigned long long, unsigned char) in helper.cpp.o
      PgHelpers::toString(long double, unsigned char) in helper.cpp.o
      __GLOBAL__sub_I_helper.cpp in helper.cpp.o
      PgTools::SimpleSequenceMatcher::markAndRemoveExactMatches(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::markAndRemoveExactMatches(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      ...
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::~basic_streambuf(), referenced from:
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      virtual thunk to std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      virtual thunk to std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      ...
  std::__1::basic_streambuf<char, std::__1::char_traits<char>>::operator=(std::__1::basic_streambuf<char, std::__1::char_traits<char>> const&), referenced from:
      MBGC_Decoder<false>::copyStreamsPositions(int, int) in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::initLazyDecompression() in MBGC_Decoder.cpp.o
      WrapperStrStream::WrapperStrStream(WrapperStrStream const&) in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::findStreamsPositions(int, int, int, unsigned long) in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::findStreamsPositions(int, int, int, unsigned long) in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::prepareStreamsForNextFileToDecompress(int, int) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesSequentially() in MBGC_Decoder.cpp.o
      ...
  std::__1::__shared_weak_count::__release_weak(), referenced from:
      PgHelpers::normalizePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int&, int&, bool) in helper.cpp.o
      PgHelpers::normalizePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int&, int&, bool) in helper.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::~basic_regex() in helper.cpp.o
      std::__1::shared_ptr<std::__1::__empty_state<char>>::~shared_ptr[abi:v160006]() in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse<char const*>(char const*, char const*) in helper.cpp.o
      std::__1::__lookahead<char, std::__1::regex_traits<char>>::~__lookahead() in helper.cpp.o
      std::__1::__lookahead<char, std::__1::regex_traits<char>>::~__lookahead() in helper.cpp.o
      ...
  std::__1::__shared_weak_count::~__shared_weak_count(), referenced from:
      std::__1::__shared_ptr_pointer<std::__1::__empty_state<char>*, std::__1::shared_ptr<std::__1::__empty_state<char>>::__shared_ptr_default_delete<std::__1::__empty_state<char>, std::__1::__empty_state<char>>, std::__1::allocator<std::__1::__empty_state<char>>>::~__shared_ptr_pointer() in helper.cpp.o
      std::__1::__shared_ptr_pointer<std::__1::__empty_state<char>*, std::__1::shared_ptr<std::__1::__empty_state<char>>::__shared_ptr_default_delete<std::__1::__empty_state<char>, std::__1::__empty_state<char>>, std::__1::allocator<std::__1::__empty_state<char>>>::~__shared_ptr_pointer() in helper.cpp.o
  std::__1::__get_collation_name(char const*), referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> std::__1::regex_traits<char>::__lookup_collatename<char*>(char*, char*, char) const in helper.cpp.o
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> std::__1::regex_traits<char>::__lookup_collatename<char const*>(char const*, char const*, char) const in helper.cpp.o
  std::__1::cin, referenced from:
      MBGC_Decoder<false>::getInstance(MBGC_Params*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::getInstance(MBGC_Params*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>) in MBGC_Decoder.cpp.o
  std::__1::cerr, referenced from:
      PgIndex::SymbolsPackingFacility::SymbolsPackingFacility(std::__1::vector<char, std::__1::allocator<char>>, bool) in SymbolsPackingFacility.cpp.o
      SlidingWindowSparseEMMatcher::initParams(unsigned int, int, int) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::initParams(unsigned int, int, int) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::calcCoprimes() in SlidingWindowSparseEMMatcher.cpp.o
      CopMEMMatcher::initParams(unsigned int) in CopMEMMatcher.cpp.o
      CopMEMMatcher::calcCoprimes() in CopMEMMatcher.cpp.o
      PgHelpers::VarLenDNACoder::Compress(unsigned char*&, unsigned long&, unsigned char const*, unsigned long, PgHelpers::VarLenDNACoderProps*) in VarLenDNACoder.cpp.o
      ...
  std::__1::cout, referenced from:
      PgHelpers::writeArray(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, void*, unsigned long, bool) in helper.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::writeArrayToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*, unsigned long) in helper.cpp.o
      PgHelpers::appout in helper.cpp.o
      PgHelpers::devout in helper.cpp.o
      PgIndex::SymbolsPackingFacility::reverseSequence(unsigned char const*, unsigned long, unsigned long) in SymbolsPackingFacility.cpp.o
      PgIndex::SymbolsPackingFacility::reverseSequence(unsigned char const*, unsigned long, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in SymbolsPackingFacility.cpp.o
      ...
  std::__1::ctype<char>::id, referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      appendCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::basic_regex[abi:v160006](char const*, std::__1::regex_constants::syntax_option_type) in helper.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::basic_regex[abi:v160006]() in helper.cpp.o
      ...
  std::__1::chrono::steady_clock::now(), referenced from:
      PgHelpers::time_checkpoint() in helper.cpp.o
      PgHelpers::time_millis(std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) in helper.cpp.o
      PgHelpers::time_millis() in helper.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::writeArrayToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*, unsigned long) in helper.cpp.o
      PgHelpers::writeArrayToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*, unsigned long) in helper.cpp.o
      ...
  std::__1::locale::locale(std::__1::locale const&), referenced from:
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::basic_filebuf() in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::basic_filebuf() in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_assertion<char const*>(char const*, char const*) in helper.cpp.o
      char const* std::__1::basic_regex<char, std::__1::regex_traits<char>>::__parse_assertion<char const*>(char const*, char const*) in helper.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::__push_lookahead(std::__1::basic_regex<char, std::__1::regex_traits<char>> const&, bool, unsigned int) in helper.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::__push_char(char) in helper.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::__push_char(char) in helper.cpp.o
      ...
  std::__1::locale::locale(), referenced from:
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::basic_regex[abi:v160006](char const*, std::__1::regex_constants::syntax_option_type) in helper.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::basic_regex[abi:v160006]() in helper.cpp.o
  std::__1::locale::~locale(), referenced from:
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      decodeCommands(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      ...
  std::__1::locale::operator=(std::__1::locale const&), referenced from:
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_stringbuf(std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>>&&) in CodersLib.cpp.o
  std::__1::codecvt<char, char, __mbstate_t>::id, referenced from:
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::basic_filebuf() in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::basic_filebuf() in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::imbue(std::__1::locale const&) in helper.cpp.o
  std::__1::collate<char>::id, referenced from:
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::basic_regex[abi:v160006](char const*, std::__1::regex_constants::syntax_option_type) in helper.cpp.o
      std::__1::basic_regex<char, std::__1::regex_traits<char>>::basic_regex[abi:v160006]() in helper.cpp.o
  std::__1::ios_base::__set_badbit_and_consider_rethrow(), referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
  std::__1::ios_base::init(void*), referenced from:
      PgHelpers::openLogFile(char*) in helper.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::writeArrayToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*, unsigned long) in helper.cpp.o
      PgHelpers::toString(unsigned long long) in helper.cpp.o
      PgHelpers::toMB(unsigned long long, unsigned char) in helper.cpp.o
      PgHelpers::toString(long double, unsigned char) in helper.cpp.o
      __GLOBAL__sub_I_helper.cpp in helper.cpp.o
      ...
  std::__1::ios_base::move(std::__1::ios_base&), referenced from:
      std::__1::reverse_iterator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>*> std::__1::__uninitialized_allocator_move_if_noexcept[abi:v160006]<std::__1::allocator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::reverse_iterator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>, std::__1::reverse_iterator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>, std::__1::reverse_iterator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>(std::__1::allocator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>>&, std::__1::reverse_iterator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>, std::__1::reverse_iterator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>, std::__1::reverse_iterator<std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>) in CodersLib.cpp.o
  std::__1::ios_base::clear(unsigned int), referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      PgHelpers::openLogFile(char*) in helper.cpp.o
      PgHelpers::readWholeArrayFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, unsigned long&) in helper.cpp.o
      PgHelpers::writeArrayToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void*, unsigned long) in helper.cpp.o
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in helper.cpp.o
      PgTools::SimpleSequenceMatcher::markAndRemoveExactMatches(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      PgTools::SimpleSequenceMatcher::markAndRemoveExactMatches(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, bool, unsigned int) in SimpleSequenceMatcher.cpp.o
      ...
  std::__1::basic_ios<char, std::__1::char_traits<char>>::~basic_ios(), referenced from:
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      MBGC_Encoder::~MBGC_Encoder() in main.cpp.o
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      virtual thunk to std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      virtual thunk to std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_ostringstream() in main.cpp.o
      ...
  std::__1::to_string(int), referenced from:
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      PpmdCoderProps::log() in PropsLibrary.cpp.o
      ...
  std::__1::to_string(unsigned int), referenced from:
      LzmaCoderProps::log() in PropsLibrary.cpp.o
      PpmdCoderProps::log() in PropsLibrary.cpp.o
  std::bad_cast::bad_cast(), referenced from:
      std::__1::__throw_bad_cast[abi:v160006]() in helper.cpp.o
  std::bad_cast::~bad_cast(), referenced from:
      std::__1::__throw_bad_cast[abi:v160006]() in helper.cpp.o
  std::terminate(), referenced from:
      ___clang_call_terminate in main.cpp.o
  typeinfo for std::__1::regex_error, referenced from:
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)12>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)16>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)3>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)17>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)14>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)6>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)11>() in helper.cpp.o
      ...
  typeinfo for std::__1::basic_istream<char, std::__1::char_traits<char>>, referenced from:
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_ifstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_ifstream<char, std::__1::char_traits<char>> in helper.cpp.o
      typeinfo for std::__1::basic_ifstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in SimpleSequenceMatcher.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in SimpleSequenceMatcher.cpp.o
      ...
  typeinfo for std::__1::basic_ostream<char, std::__1::char_traits<char>>, referenced from:
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      typeinfo for std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ofstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ofstream<char, std::__1::char_traits<char>> in helper.cpp.o
      ...
  typeinfo for std::__1::basic_iostream<char, std::__1::char_traits<char>>, referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      typeinfo for std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
      ...
  typeinfo for std::__1::basic_streambuf<char, std::__1::char_traits<char>>, referenced from:
      typeinfo for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      typeinfo for NullBuffer in helper.cpp.o
      typeinfo for std::__1::basic_filebuf<char, std::__1::char_traits<char>> in helper.cpp.o
      typeinfo for WrapperStreamBuf in MBGC_Decoder.cpp.o
  typeinfo for std::__1::__shared_weak_count, referenced from:
      typeinfo for std::__1::__shared_ptr_pointer<std::__1::__empty_state<char>*, std::__1::shared_ptr<std::__1::__empty_state<char>>::__shared_ptr_default_delete<std::__1::__empty_state<char>, std::__1::__empty_state<char>>, std::__1::allocator<std::__1::__empty_state<char>>> in helper.cpp.o
  typeinfo for std::length_error, referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.cpp.o
  typeinfo for std::out_of_range, referenced from:
      std::__1::__throw_out_of_range[abi:v160006](char const*) in MBGC_Decoder.cpp.o
  typeinfo for std::bad_array_new_length, referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in helper.cpp.o
  typeinfo for std::bad_cast, referenced from:
      std::__1::__throw_bad_cast[abi:v160006]() in helper.cpp.o
  typeinfo for std::bad_alloc, referenced from:
      GCC_except_table71 in SlidingWindowSparseEMMatcher.cpp.o
      GCC_except_table90 in SlidingWindowSparseEMMatcher.cpp.o
      GCC_except_table12 in VarLenDNACoder.cpp.o
      GCC_except_table4 in LzmaCoder.cpp.o
      GCC_except_table8 in PpmdCoder.cpp.o
  typeinfo for int, referenced from:
      PgHelpers::readArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long) in helper.cpp.o
      PgHelpers::readArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, void*, unsigned long) in helper.cpp.o
      PgHelpers::writeArray(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, void*, unsigned long, bool) in helper.cpp.o
      PgHelpers::readWholeArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long&) in helper.cpp.o
  vtable for __cxxabiv1::__class_type_info, referenced from:
      typeinfo for std::__1::__node<char> in helper.cpp.o
      typeinfo for SlidingWindowSparseEMMatcher in SlidingWindowSparseEMMatcher.cpp.o
      typeinfo for PgTools::SimpleSequenceMatcher in SimpleSequenceMatcher.cpp.o
      typeinfo for PgTools::TextMatcher in CopMEMMatcher.cpp.o
      typeinfo for CoderProps in PropsLibrary.cpp.o
      typeinfo for MBGC_Decoder_API in MBGC_Decoder.cpp.o
  vtable for __cxxabiv1::__si_class_type_info, referenced from:
      typeinfo for std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      typeinfo for std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      typeinfo for NullBuffer in helper.cpp.o
      typeinfo for std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      typeinfo for std::__1::basic_filebuf<char, std::__1::char_traits<char>> in helper.cpp.o
      typeinfo for std::__1::__end_state<char> in helper.cpp.o
      typeinfo for std::__1::__shared_ptr_pointer<std::__1::__empty_state<char>*, std::__1::shared_ptr<std::__1::__empty_state<char>>::__shared_ptr_default_delete<std::__1::__empty_state<char>, std::__1::__empty_state<char>>, std::__1::allocator<std::__1::__empty_state<char>>> in helper.cpp.o
      ...
  vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>, referenced from:
      __GLOBAL__sub_I_helper.cpp in helper.cpp.o
  vtable for std::__1::basic_ios<char, std::__1::char_traits<char>>, referenced from:
      WrapperStrStream::WrapperStrStream() in MBGC_Decoder.cpp.o
      WrapperStrStream::WrapperStrStream(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in MBGC_Decoder.cpp.o
  vtable for std::length_error, referenced from:
      std::length_error::length_error[abi:v160006](char const*) in main.cpp.o
  vtable for std::out_of_range, referenced from:
      std::out_of_range::out_of_range[abi:v160006](char const*) in MBGC_Decoder.cpp.o
  non-virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char>>::~basic_iostream(), referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  non-virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char>>::~basic_iostream(), referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  virtual thunk to std::__1::basic_istream<char, std::__1::char_traits<char>>::~basic_istream(), referenced from:
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_ifstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in SimpleSequenceMatcher.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
      construction vtable for std::__1::basic_istream<char, WrapperStrStream::char_traits<char>>-in-WrapperStrStream in MBGC_Decoder.cpp.o
  virtual thunk to std::__1::basic_istream<char, std::__1::char_traits<char>>::~basic_istream(), referenced from:
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_ifstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in SimpleSequenceMatcher.cpp.o
      construction vtable for std::__1::basic_istream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
      construction vtable for std::__1::basic_istream<char, WrapperStrStream::char_traits<char>>-in-WrapperStrStream in MBGC_Decoder.cpp.o
  virtual thunk to std::__1::basic_ostream<char, std::__1::char_traits<char>>::~basic_ostream(), referenced from:
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ofstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  virtual thunk to std::__1::basic_ostream<char, std::__1::char_traits<char>>::~basic_ostream(), referenced from:
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in main.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_ofstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_ostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char>>::~basic_iostream(), referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  virtual thunk to std::__1::basic_iostream<char, std::__1::char_traits<char>>::~basic_iostream(), referenced from:
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_fstream<char, std::__1::char_traits<char>> in helper.cpp.o
      construction vtable for std::__1::basic_iostream<char, std::__1::char_traits<char>>-in-std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char>> in CodersLib.cpp.o
  operator delete[](void*), referenced from:
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::imbue(std::__1::locale const&) in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::setbuf(char*, long) in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::setbuf(char*, long) in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::~basic_filebuf() in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::~basic_filebuf() in helper.cpp.o
      PgIndex::SymbolsPackingFacility::buildReversePackAndClearIndexes() in SymbolsPackingFacility.cpp.o
      PgIndex::SymbolsPackingFacility::buildReversePackAndClearIndexes() in SymbolsPackingFacility.cpp.o
      ...
  operator delete(void*), referenced from:
      printVersion(bool) in main.cpp.o
      printVersion(bool) in main.cpp.o
      printEncodeUsage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, bool) in main.cpp.o
      printEncodeUsage(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, bool) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      ...
  operator new[](unsigned long), referenced from:
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::imbue(std::__1::locale const&) in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::imbue(std::__1::locale const&) in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::setbuf(char*, long) in helper.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::setbuf(char*, long) in helper.cpp.o
      PgHelpers::readArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long) in helper.cpp.o
      PgHelpers::readWholeArray(std::__1::basic_istream<char, std::__1::char_traits<char>>&, unsigned long&) in helper.cpp.o
      PgIndex::SymbolsPackingFacility::SymbolsPackingFacility(std::__1::vector<char, std::__1::allocator<char>>, bool) in SymbolsPackingFacility.cpp.o
      PgIndex::SymbolsPackingFacility::SymbolsPackingFacility(std::__1::vector<char, std::__1::allocator<char>>, bool) in SymbolsPackingFacility.cpp.o
      PgIndex::SymbolsPackingFacility::SymbolsPackingFacility(std::__1::vector<char, std::__1::allocator<char>>, bool) in SymbolsPackingFacility.cpp.o
      PgIndex::SymbolsPackingFacility::SymbolsPackingFacility(std::__1::vector<char, std::__1::allocator<char>>, bool) in SymbolsPackingFacility.cpp.o
      ...
  operator new(unsigned long), referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string[abi:v160006]<std::nullptr_t>(char const*) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      encodeCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, int, char**) in main.cpp.o
      ...
  ___cxa_allocate_exception, referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.cpp.o
      std::__throw_bad_array_new_length[abi:v160006]() in helper.cpp.o
      std::__1::__throw_bad_cast[abi:v160006]() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)12>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)16>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)3>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)17>() in helper.cpp.o
      ...
  ___cxa_begin_catch, referenced from:
      ___clang_call_terminate in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>>::overflow(int) in main.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::~basic_filebuf() in helper.cpp.o
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in helper.cpp.o
      SlidingWindowSparseEMMatcher::SlidingWindowSparseEMMatcher(unsigned long, unsigned int, int, int, int, unsigned int, bool) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::SlidingWindowSparseEMMatcher(unsigned long, unsigned int, int, int, int, unsigned int, bool) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::SlidingWindowSparseEMMatcher(unsigned long, unsigned int, int, int, int, unsigned int, bool) in SlidingWindowSparseEMMatcher.cpp.o
      ...
  ___cxa_end_catch, referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      std::__1::basic_ostream<char, std::__1::char_traits<char>>& std::__1::__put_character_sequence[abi:v160006]<char, std::__1::char_traits<char>>(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, char const*, unsigned long) in main.cpp.o
      std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char>>::overflow(int) in main.cpp.o
      std::__1::basic_filebuf<char, std::__1::char_traits<char>>::~basic_filebuf() in helper.cpp.o
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in helper.cpp.o
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in helper.cpp.o
      SlidingWindowSparseEMMatcher::SlidingWindowSparseEMMatcher(unsigned long, unsigned int, int, int, int, unsigned int, bool) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::SlidingWindowSparseEMMatcher(unsigned long, unsigned int, int, int, int, unsigned int, bool) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::SlidingWindowSparseEMMatcher(unsigned long, unsigned int, int, int, int, unsigned int, bool) in SlidingWindowSparseEMMatcher.cpp.o
      ...
  ___cxa_free_exception, referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)12>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)16>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)3>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)17>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)14>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)6>() in helper.cpp.o
      ...
  ___cxa_guard_abort, referenced from:
      ___cxx_global_var_init.6 in main.cpp.o
      ___cxx_global_var_init.10 in main.cpp.o
      ___cxx_global_var_init.10 in main.cpp.o
      ___cxx_global_var_init.14 in main.cpp.o
      ___cxx_global_var_init.14 in main.cpp.o
      ___cxx_global_var_init.16 in main.cpp.o
      ___cxx_global_var_init.16 in main.cpp.o
      ...
  ___cxa_guard_acquire, referenced from:
      ___cxx_global_var_init.4 in main.cpp.o
      ___cxx_global_var_init.6 in main.cpp.o
      ___cxx_global_var_init.10 in main.cpp.o
      ___cxx_global_var_init.14 in main.cpp.o
      ___cxx_global_var_init.16 in main.cpp.o
      ___cxx_global_var_init.17 in main.cpp.o
      ___cxx_global_var_init.4 in input_with_libdeflate_wrapper.cpp.o
      ...
  ___cxa_guard_release, referenced from:
      ___cxx_global_var_init.4 in main.cpp.o
      ___cxx_global_var_init.6 in main.cpp.o
      ___cxx_global_var_init.10 in main.cpp.o
      ___cxx_global_var_init.14 in main.cpp.o
      ___cxx_global_var_init.16 in main.cpp.o
      ___cxx_global_var_init.17 in main.cpp.o
      ___cxx_global_var_init.4 in input_with_libdeflate_wrapper.cpp.o
      ...
  ___cxa_rethrow, referenced from:
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::operator>>[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&) in helper.cpp.o
      std::__1::basic_istream<char, std::__1::char_traits<char>>& std::__1::getline[abi:v160006]<char, std::__1::char_traits<char>, std::__1::allocator<char>>(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, char) in MBGC_Encoder.cpp.o
  ___cxa_throw, referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in main.cpp.o
      std::__throw_bad_array_new_length[abi:v160006]() in helper.cpp.o
      std::__1::__throw_bad_cast[abi:v160006]() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)12>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)16>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)3>() in helper.cpp.o
      void std::__1::__throw_regex_error[abi:v160006]<(std::__1::regex_constants::error_type)17>() in helper.cpp.o
      ...
  ___gxx_personality_v0, referenced from:
      /Users/karel/github/mbgc/CMakeFiles/mbgc.dir/coders/SymbolsPackingFacility.cpp.o
  ___kmpc_barrier, referenced from:
      parallelBlocksDecompress(unsigned char*, unsigned long*, unsigned char*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) (.omp_outlined) in CodersLib.cpp.o
      readCompressedCollectiveParallel(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>&) (.omp_outlined) in CodersLib.cpp.o
      MBGC_Encoder::encodeTargetsParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      ...
  ___kmpc_critical, referenced from:
      SlidingWindowSparseEMMatcher::acquireWorkerMatchingLockPos() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::releaseWorkerMatchingLockPos(unsigned long) in SlidingWindowSparseEMMatcher.cpp.o
      MBGC_Encoder::tryClaimAndProcessTarget(bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetSequence(int, bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetSequence(int, bool) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::iterateNext(char const*, unsigned char*&, unsigned long&) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::iterateNext(char const*, unsigned char*&, unsigned long&) in MBGC_Decoder.cpp.o
      ...
  ___kmpc_dispatch_fini_4u, referenced from:
      MBGC_Encoder::encodeTargetsWithParallelIO() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetsBruteParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
  ___kmpc_dispatch_init_4u, referenced from:
      MBGC_Encoder::encodeTargetsWithParallelIO() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetsBruteParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
  ___kmpc_dispatch_next_4u, referenced from:
      MBGC_Encoder::encodeTargetsWithParallelIO() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetsWithParallelIO() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetsBruteParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetsBruteParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
  ___kmpc_end_critical, referenced from:
      SlidingWindowSparseEMMatcher::acquireWorkerMatchingLockPos() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::releaseWorkerMatchingLockPos(unsigned long) in SlidingWindowSparseEMMatcher.cpp.o
      MBGC_Encoder::tryClaimAndProcessTarget(bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetSequence(int, bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetSequence(int, bool) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::iterateNext(char const*, unsigned char*&, unsigned long&) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::iterateNext(char const*, unsigned char*&, unsigned long&) in MBGC_Decoder.cpp.o
      ...
  ___kmpc_end_ordered, referenced from:
      MBGC_Encoder::encodeTargetsWithParallelIO() (.omp_outlined) in MBGC_Encoder.cpp.o
  ___kmpc_end_single, referenced from:
      parallelBlocksDecompress(unsigned char*, unsigned long*, unsigned char*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) (.omp_outlined) in CodersLib.cpp.o
      readCompressedCollectiveParallel(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>&) (.omp_outlined) in CodersLib.cpp.o
      MBGC_Encoder::encodeTargetsParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      ...
  ___kmpc_for_static_fini, referenced from:
      void SlidingWindowSparseEMMatcher::processIgnoreCollisionsRef<unsigned long long>(unsigned long long*, unsigned long&, long long&) (.omp_outlined) in SlidingWindowSparseEMMatcher.cpp.o
      void SlidingWindowSparseEMMatcher::processIgnoreCollisionsRef<unsigned int>(unsigned int*, unsigned long&, long long&) (.omp_outlined) in SlidingWindowSparseEMMatcher.cpp.o
      CompressionJob::writeCompressedCollectiveParallel(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, std::__1::vector<CompressionJob, std::__1::allocator<CompressionJob>>&, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) (.omp_outlined) in CodersLib.cpp.o
  ___kmpc_for_static_init_4, referenced from:
      CompressionJob::writeCompressedCollectiveParallel(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, std::__1::vector<CompressionJob, std::__1::allocator<CompressionJob>>&, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) (.omp_outlined) in CodersLib.cpp.o
  ___kmpc_for_static_init_8u, referenced from:
      void SlidingWindowSparseEMMatcher::processIgnoreCollisionsRef<unsigned long long>(unsigned long long*, unsigned long&, long long&) (.omp_outlined) in SlidingWindowSparseEMMatcher.cpp.o
      void SlidingWindowSparseEMMatcher::processIgnoreCollisionsRef<unsigned int>(unsigned int*, unsigned long&, long long&) (.omp_outlined) in SlidingWindowSparseEMMatcher.cpp.o
  ___kmpc_fork_call, referenced from:
      SlidingWindowSparseEMMatcher::loadRef(char const*, unsigned long, unsigned long&, long long&, bool, bool, char) in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::loadRef(char const*, unsigned long, unsigned long&, long long&, bool, bool, char) in SlidingWindowSparseEMMatcher.cpp.o
      Uncompress(unsigned char*, unsigned long, unsigned char*, unsigned long, unsigned char, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      parallelBlocksDecompress(unsigned char*, unsigned long*, unsigned char*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      CompressionJob::writeCompressedCollectiveParallel(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, std::__1::vector<CompressionJob, std::__1::allocator<CompressionJob>>&, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      readCompressedCollectiveParallel(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>&) in CodersLib.cpp.o
      MBGC_Encoder::encodeTargetsWithParallelIO() in MBGC_Encoder.cpp.o
      ...
  ___kmpc_global_thread_num, referenced from:
      SlidingWindowSparseEMMatcher::acquireWorkerMatchingLockPos() in SlidingWindowSparseEMMatcher.cpp.o
      SlidingWindowSparseEMMatcher::releaseWorkerMatchingLockPos(unsigned long) in SlidingWindowSparseEMMatcher.cpp.o
      MBGC_Encoder::encodeTargetsWithParallelIO() in MBGC_Encoder.cpp.o
      MBGC_Encoder::tryClaimAndProcessTarget(bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetSequence(int, bool) in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetsBruteParallel() in MBGC_Encoder.cpp.o
      MBGC_Encoder::performMatching() in MBGC_Encoder.cpp.o
      ...
  ___kmpc_omp_task, referenced from:
      parallelBlocksDecompress(unsigned char*, unsigned long*, unsigned char*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) (.omp_outlined) in CodersLib.cpp.o
      readCompressedCollectiveParallel(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>&) (.omp_outlined) in CodersLib.cpp.o
      MBGC_Encoder::encodeTargetsParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
  ___kmpc_omp_task_alloc, referenced from:
      parallelBlocksDecompress(unsigned char*, unsigned long*, unsigned char*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) (.omp_outlined) in CodersLib.cpp.o
      readCompressedCollectiveParallel(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>&) (.omp_outlined) in CodersLib.cpp.o
      MBGC_Encoder::encodeTargetsParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
  ___kmpc_ordered, referenced from:
      MBGC_Encoder::encodeTargetsWithParallelIO() (.omp_outlined) in MBGC_Encoder.cpp.o
  ___kmpc_push_num_threads, referenced from:
      MBGC_Encoder::encodeTargetsWithParallelIO() in MBGC_Encoder.cpp.o
      MBGC_Encoder::encodeTargetsBruteParallel() in MBGC_Encoder.cpp.o
      MBGC_Encoder::performMatching() in MBGC_Encoder.cpp.o
  ___kmpc_single, referenced from:
      parallelBlocksDecompress(unsigned char*, unsigned long*, unsigned char*, unsigned long*, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) (.omp_outlined) in CodersLib.cpp.o
      readCompressedCollectiveParallel(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>&) (.omp_outlined) in CodersLib.cpp.o
      MBGC_Encoder::encodeTargetsParallel() (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      ...
  _omp_destroy_lock, referenced from:
      MBGC_Encoder::encodeTargetsParallel() in MBGC_Encoder.cpp.o
      MBGC_Encoder::performMatching() in MBGC_Encoder.cpp.o
  _omp_get_num_procs, referenced from:
      MBGC_Encoder::encode() in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::list() in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::decodeInit() in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::list() in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::decodeInit() in MBGC_Decoder.cpp.o
  _omp_get_num_threads, referenced from:
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Params::enableOmpThreads(int) (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
  _omp_get_thread_num, referenced from:
      MBGC_Decoder<true>::decodeHeader(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::moveToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, int, bool) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::decodeSequenceAndReturnUnmatchedChars(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&, unsigned long, int) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::decodeTarget(unsigned long, int) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::extractFilesParallel() (.omp_outlined) in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::workerParallelTask(int) in MBGC_Decoder.cpp.o
  _omp_init_lock, referenced from:
      MBGC_Encoder::encodeTargetsParallel() in MBGC_Encoder.cpp.o
      MBGC_Encoder::performMatching() in MBGC_Encoder.cpp.o
  _omp_set_max_active_levels, referenced from:
      CompressionJob::writeCompressedCollectiveParallel(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, std::__1::vector<CompressionJob, std::__1::allocator<CompressionJob>>&, std::__1::basic_ostream<char, std::__1::char_traits<char>>*) in CodersLib.cpp.o
      readCompressedCollectiveParallel(std::__1::basic_istream<char, std::__1::char_traits<char>>&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*>>&) in CodersLib.cpp.o
  _omp_set_num_threads, referenced from:
      MBGC_Encoder::prepareAndCompressStreams() in MBGC_Encoder.cpp.o
      MBGC_Encoder::encode() in MBGC_Encoder.cpp.o
      MBGC_Decoder<false>::list() in MBGC_Decoder.cpp.o
      MBGC_Decoder<false>::decodeInit() in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::list() in MBGC_Decoder.cpp.o
      MBGC_Decoder<true>::decodeInit() in MBGC_Decoder.cpp.o
  _omp_test_lock, referenced from:
      MBGC_Encoder::finalizeParallelEncodingOfTarget(bool) in MBGC_Encoder.cpp.o
  _omp_unset_lock, referenced from:
      MBGC_Encoder::finalizeParallelEncodingOfTarget(bool) in MBGC_Encoder.cpp.o
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [mbgc] Error 1
make[1]: *** [CMakeFiles/mbgc.dir/all] Error 2
make: *** [all] Error 2
immortalite:mbgc karel$ 


@karel-brinda
Copy link
Author

This seems to be an issue related to the architecture. As @leoisl wrote, Bioconda doesn't support arm yet, so everything still goes through x86...

@karel-brinda
Copy link
Author

What about using clang from brew?

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

This seems to be an issue related to the architecture. As @leoisl wrote, Bioconda doesn't support arm yet, so everything still goes through x86...

But you are not using Bioconda channel. Could you verify version of your default conda compiler.

@karel-brinda
Copy link
Author

Even though I'm not using the Bioconda channel here, to make my Conda installation with Bioconda, I need to fix the architecture to x86 (already at the stage of installing miniconda). In principle, it's possible within Conda to combine packages from different architectures (by switching parameters for individual environments), but it's a nightmare so prefer simplicity (i.e, x86 everywhere).

On the other hand, I might be able to create an arm env with llm just for this and adjust conda pref. I'll try it.

@karel-brinda
Copy link
Author

karel-brinda commented Dec 7, 2023

Before I forget/lose it, I'm putting the command here: CONDA_SUBDIR=osx-arm64 conda create -n llvm llvm llvm-openmp clang clangxx

And then CONDA_PREFIX=~/miniconda/envs/llvm

@karel-brinda
Copy link
Author

And it works!!!!!!!!!!!!!!!!

$ ./mbgc -v
Multiple Bacteria Genome Compressor (MBGC) v2.0.1 (c) Tomasz Kowalski, Szymon Grabowski, 2023

@karel-brinda
Copy link
Author

karel-brinda commented Dec 7, 2023

So I think if you combine everything:

  • Updating CMakeLists.txt on git
  • Info about creating an architecture-specific conda env for llvm
  • Running cmake with the right params

it will work for:

  • mac computers with the old hardware
  • mac computers with the new hardware
  • bioconda mac infrastructure

@kowallus
Copy link
Owner

kowallus commented Dec 7, 2023

Ok. Thanks @karel-brinda @leoisl !
https://anaconda.org/bioconda/mbgc
is available for osx-x64.
Can you confirm it works?

@karel-brinda
Copy link
Author

I confirm that it's installable. One little issue I've noticed: it installs also

+ libcxx        16.0.6  hd57cbcb_0  conda-forge     Cached
+ llvm-openmp   17.0.6  hb6ac08f_0  conda-forge     Cached

I believe these two should be dependencies only for the build, but not for final bioconda package.

@karel-brinda
Copy link
Author

Fixed by 46d8c6b. Moving the rest to a separate issue.

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

3 participants