Commit a97cce86a for llama.cpp
commit a97cce86a8addeb9f40cba7a261c94b1f0c576cb
Author: Georgi Gerganov <ggerganov@gmail.com>
Date: Sun Sep 27 20:18:56 2026 +0300
common : avoid side effects around params parsing (#29537)
- register --rpc unconditionally and call llama_supports_rpc() only from its handler
- print server "initialization ..." log after args are parsed
Assisted-by: pi:llama.cpp/MiMo-V2.6-Flash-RL
diff --git a/common/arg.cpp b/common/arg.cpp
index 63e342776..2acac3b5c 100644
--- a/common/arg.cpp
+++ b/common/arg.cpp
@@ -2673,16 +2673,17 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
params.video_ffmpeg_bin_dir = value;
}
).set_examples(mmproj_examples).set_env("LLAMA_ARG_VIDEO_FFMPEG_DIR"));
- if (params.is_gen_docs || llama_supports_rpc()) {
- add_opt(common_arg(
- {"--rpc"}, "SERVERS",
- "comma-separated list of RPC servers (host:port)",
- [](common_params & params, const std::string & value) {
- add_rpc_devices(value);
- GGML_UNUSED(params);
+ add_opt(common_arg(
+ {"--rpc"}, "SERVERS",
+ "comma-separated list of RPC servers (host:port)",
+ [](common_params & params, const std::string & value) {
+ if (!llama_supports_rpc()) {
+ throw std::invalid_argument("RPC not supported in this build");
}
- ).set_env("LLAMA_ARG_RPC"));
- }
+ add_rpc_devices(value);
+ GGML_UNUSED(params);
+ }
+ ).set_env("LLAMA_ARG_RPC"));
add_opt(common_arg(
{"-lm", "--load-mode"}, "MODE",
"model loading mode (default: auto)\n"
diff --git a/tools/server/server.cpp b/tools/server/server.cpp
index 049bdcebb..4568a11fb 100644
--- a/tools/server/server.cpp
+++ b/tools/server/server.cpp
@@ -102,12 +102,12 @@ int llama_server(int argc, char ** argv) {
// touch it. lifecycle is symmetric, stop_gc() runs in clean_up() before backend free
server_stream_session_manager_start();
- SRV_INF("%s", "initializing ...\n");
-
if (!common_params_parse(argc, argv, params, LLAMA_EXAMPLE_SERVER)) {
return 1;
}
+ SRV_INF("%s", "initializing ...\n");
+
llama_backend_init();
llama_numa_init(params.numa);