[libcxx-dev] build issue on mingw gcc, need some help

Maarten Verhage via libcxx-dev libcxx-dev at lists.llvm.org
Wed Jan 9 09:18:44 PST 2019


Hi Martin and others,

Sorry for my inaccurate description of the issues I'm facing. Rather than 
trying to address the topics of misunderstanding between us I thought it 
would be best to share what I currently have of the Python script and what
my makefile writes to the command line.

I put the files in my Github repository:
https://github.com/mrverhage/libcxx_build_script

As the data was to much to have it posted as attachments on this mailing 
list. I've not much experience with Github, I hope it's accesible and maybe 
editable. result.txt is the output of the makefile.

Although it's a lot of text I believe it is as specific as can be and I hope 
it will be easy to navigate through. I'm certainly willing to explain what 
I'm trying to achieve if need to. And I do also take criticism on my script.

The python script first would need some edits (in the beginning) to find the 
folders of libc++ and libc++abi sources on your harddisk.

As per your suggestion I put the following section into __config file of the 
libcxx include folder:

#  if defined(__MINGW32__)
#    define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS _LIBCPP_DLL_VIS
#    define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS
#  else
#    define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS
#    define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCPP_DLL_VIS
#  endif


But still undefined reference to __imp__ZNSt8bad_castC1Ev and more.

I also edited libc++abi2.exp to make a valid def file and applied this to 
libc++. I believe it actually needs to be applied to libc++ and not 
libc++abi.

Still the same undefined references.

Please let me know where I got it wrong?

>> To answer my own question: The low libc++abi.dll size was due a missing
>> linker option:
>> -Wl,--whole-archive cxx_objects.a -Wl,--no-whole-archive
>
> I presume you mean cxxabi_objects.a, for building libc++abi.dll? You don't
> want to do that with cxx_objects.a, otherwise you'd end up including all
> of libc++ in libc++abi.

Yeah, sorry I meant cxxabi_objects.a.

Kind regards,
Maarten Verhage 



More information about the libcxx-dev mailing list