blob: eed1958647f802c80c6ac6b6c6f9d12d1f7f2976 [file] [log] [blame]
Rui Ueyama2ec34542017-04-05 05:07:39 +00001//===- ScriptParser.h -------------------------------------------*- C++ -*-===//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Rui Ueyama2ec34542017-04-05 05:07:39 +00006//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLD_ELF_SCRIPT_PARSER_H
10#define LLD_ELF_SCRIPT_PARSER_H
11
Rui Ueyama3f851702017-10-02 21:00:41 +000012#include "lld/Common/LLVM.h"
Rui Ueyama2ec34542017-04-05 05:07:39 +000013#include "llvm/Support/MemoryBuffer.h"
14
15namespace lld {
16namespace elf {
17
18// Parses a linker script. Calling this function updates
Fangrui Song47cfe8f2019-07-16 05:50:45 +000019// lld::elf::config and lld::elf::script.
Rui Ueyama3837f422019-07-10 05:00:37 +000020void readLinkerScript(MemoryBufferRef mb);
Rui Ueyama2ec34542017-04-05 05:07:39 +000021
22// Parses a version script.
Rui Ueyama3837f422019-07-10 05:00:37 +000023void readVersionScript(MemoryBufferRef mb);
Rui Ueyama2ec34542017-04-05 05:07:39 +000024
Rui Ueyama3837f422019-07-10 05:00:37 +000025void readDynamicList(MemoryBufferRef mb);
Rui Ueyama2ec34542017-04-05 05:07:39 +000026
Petr Hosek8c7e8cc2017-11-04 02:03:58 +000027// Parses the defsym expression.
Rui Ueyama3837f422019-07-10 05:00:37 +000028void readDefsym(StringRef name, MemoryBufferRef mb);
Petr Hosek8c7e8cc2017-11-04 02:03:58 +000029
Fangrui Song49279ca12020-06-17 17:11:38 -070030bool hasWildcard(StringRef s);
31
Rui Ueyama2ec34542017-04-05 05:07:39 +000032} // namespace elf
33} // namespace lld
34
35#endif