[lld] r234729 - [Mips] Explicitly instantiate MipsELFFile template class

Aaron Ballman aaron at aaronballman.com
Mon Apr 13 07:11:57 PDT 2015


I am now seeing this link warning from MSVC:

Warning 1 warning LNK4221: This object file does not define any
previously undefined public symbols, so it will not be used by any
link operation that consumes this library
E:\llvm\2013\tools\lld\lib\ReaderWriter\ELF\Mips\MipsELFFile.obj

Is it expected that this file produces no linkable symbols?

~Aaron

On Mon, Apr 13, 2015 at 4:35 AM, Simon Atanasyan <simon at atanasyan.com> wrote:
> Author: atanasyan
> Date: Mon Apr 13 03:35:04 2015
> New Revision: 234729
>
> URL: http://llvm.org/viewvc/llvm-project?rev=234729&view=rev
> Log:
> [Mips] Explicitly instantiate MipsELFFile template class
>
> Use explicit instantiation to reduce object files size.
>
> Added:
>     lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp
> Modified:
>     lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt
>     lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt?rev=234729&r1=234728&r2=234729&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt Mon Apr 13 03:35:04 2015
> @@ -1,5 +1,6 @@
>  add_llvm_library(lldMipsELFTarget
>    MipsCtorsOrderPass.cpp
> +  MipsELFFile.cpp
>    MipsELFFlagsMerger.cpp
>    MipsLinkingContext.cpp
>    MipsRelocationHandler.cpp
>
> Added: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp?rev=234729&view=auto
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp (added)
> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp Mon Apr 13 03:35:04 2015
> @@ -0,0 +1,21 @@
> +//===- lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp --------------------------===//
> +//
> +//                             The LLVM Linker
> +//
> +// This file is distributed under the University of Illinois Open Source
> +// License. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +
> +#include "MipsELFFile.h"
> +
> +namespace lld {
> +namespace elf {
> +
> +MIPSFILE_INSTANTIATION(Mips32ELType)
> +MIPSFILE_INSTANTIATION(Mips64ELType)
> +MIPSFILE_INSTANTIATION(Mips32BEType)
> +MIPSFILE_INSTANTIATION(Mips64BEType)
> +
> +}
> +}
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h?rev=234729&r1=234728&r2=234729&view=diff
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h Mon Apr 13 03:35:04 2015
> @@ -289,6 +289,21 @@ private:
>    }
>  };
>
> +#define EXTERN_MIPSFILE_INSTANTIATION(T)                                       \
> +  EXTERN_TEMPLATE_INSTANTIATION(class MipsELFDefinedAtom<T>);                  \
> +  EXTERN_TEMPLATE_INSTANTIATION(class MipsELFReference<T>);                    \
> +  EXTERN_TEMPLATE_INSTANTIATION(class MipsELFFile<T>);
> +
> +#define MIPSFILE_INSTANTIATION(T)                                              \
> +  TEMPLATE_INSTANTIATION(class MipsELFDefinedAtom<T>);                         \
> +  TEMPLATE_INSTANTIATION(class MipsELFReference<T>);                           \
> +  TEMPLATE_INSTANTIATION(class MipsELFFile<T>);
> +
> +EXTERN_MIPSFILE_INSTANTIATION(Mips32ELType)
> +EXTERN_MIPSFILE_INSTANTIATION(Mips64ELType)
> +EXTERN_MIPSFILE_INSTANTIATION(Mips32BEType)
> +EXTERN_MIPSFILE_INSTANTIATION(Mips64BEType)
> +
>  } // elf
>  } // lld
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list