1
1
mirror of https://github.com/rui314/mold.git synced 2024-11-11 05:46:58 +03:00
This commit is contained in:
Rui Ueyama 2021-04-05 22:19:51 +09:00
parent 00666d4970
commit 87dcaf097e
4 changed files with 37 additions and 68 deletions

View File

@ -489,28 +489,19 @@ void parse_nonpositional_args(Context<E> &ctx,
ctx.arg.output = "a.out";
}
template
std::vector<std::string_view>
expand_response_files(Context<X86_64> &ctx, char **argv);
#define INSTANTIATE(E) \
template \
std::vector<std::string_view> \
expand_response_files(Context<E> &ctx, char **argv); \
\
template \
bool read_arg(Context<E> &ctx, std::span<std::string_view> &args, \
std::string_view &arg, \
std::string name); \
\
template \
void parse_nonpositional_args(Context<E> &ctx, \
std::vector<std::string_view> &remaining)
template
bool read_arg(Context<X86_64> &ctx, std::span<std::string_view> &args,
std::string_view &arg,
std::string name);
template
void parse_nonpositional_args(Context<X86_64> &ctx,
std::vector<std::string_view> &remaining);
template
std::vector<std::string_view>
expand_response_files(Context<I386> &ctx, char **argv);
template
bool read_arg(Context<I386> &ctx, std::span<std::string_view> &args,
std::string_view &arg,
std::string name);
template
void parse_nonpositional_args(Context<I386> &ctx,
std::vector<std::string_view> &remaining);
INSTANTIATE(X86_64);
INSTANTIATE(I386);

View File

@ -318,20 +318,13 @@ void parse_dynamic_list(Context<E> &ctx, std::string path) {
SyntaxError(ctx, tok[0]) << "trailing garbage token";
}
template
void parse_linker_script(Context<X86_64> &ctx, MemoryMappedFile<X86_64> *mb);
#define INSTANTIATE(E) \
template \
void parse_linker_script(Context<E> &ctx, MemoryMappedFile<E> *mb); \
template \
void parse_version_script(Context<E> &ctx, std::string path); \
template \
void parse_dynamic_list(Context<E> &ctx, std::string path)
template
void parse_version_script(Context<X86_64> &ctx, std::string path);
template
void parse_dynamic_list(Context<X86_64> &ctx, std::string path);
template
void parse_linker_script(Context<I386> &ctx, MemoryMappedFile<I386> *mb);
template
void parse_version_script(Context<I386> &ctx, std::string path);
template
void parse_dynamic_list(Context<I386> &ctx, std::string path);
INSTANTIATE(X86_64);
INSTANTIATE(I386);

View File

@ -252,24 +252,12 @@ void process_run_subcommand(Context<E> &ctx, int argc, char **argv) {
Fatal(ctx) << "execvp failed: " << strerror(errno);
}
template
bool resume_daemon(Context<X86_64> &ctx, char **argv, i64 *code);
#define INSTANTIATE(E) \
template bool resume_daemon(Context<E> &, char **, i64 *); \
template void daemonize(Context<E> &, char **, \
std::function<void()> *, \
std::function<void()> *); \
template void process_run_subcommand(Context<E> &, int, char **)
template
void daemonize(Context<X86_64> &ctx, char **argv,
std::function<void()> *wait_for_client,
std::function<void()> *on_complete);
template
void process_run_subcommand(Context<X86_64> &ctx, int argc, char **argv);
template
bool resume_daemon(Context<I386> &ctx, char **argv, i64 *code);
template
void daemonize(Context<I386> &ctx, char **argv,
std::function<void()> *wait_for_client,
std::function<void()> *on_complete);
template
void process_run_subcommand(Context<I386> &ctx, int argc, char **argv);
INSTANTIATE(X86_64);
INSTANTIATE(I386);

View File

@ -34,12 +34,9 @@ std::ostream &operator<<(std::ostream &out, const Symbol<E> &sym) {
return out;
}
template class Symbol<X86_64>;
#define INSTANTIATE(E) \
template class Symbol<E>; \
template std::ostream &operator<<(std::ostream &, const Symbol<E> &)
template
std::ostream &operator<<(std::ostream &out, const Symbol<X86_64> &sym);
template class Symbol<I386>;
template
std::ostream &operator<<(std::ostream &out, const Symbol<I386> &sym);
INSTANTIATE(X86_64);
INSTANTIATE(I386);