**Use case**
We want to use self-extracting compressor utility during build, which can be cross-compiled.
Currently self-extracting compressor utility includes appended decompressor binary, which is a base for building self-extracting executable. The problem arise from the fact that self-extracting executable usually required to be built during clickhouse build - which can be cross-compiled - so in such case additional compressor in native architecture should be built and then this compressor should compress target binaries and attach to target decompressor built in the target architecture.

**Describe the solution you'd like**
Provide --decompressor parameter so proper decompressor binary can be chosen.

**Additional context**
ref #34755

close(input_fd);
        return 1;
    }
    auto buf_memory = std::make_unique<char[]>(1ul<<19);
    char * buf = buf_memory.get();
    ssize_t n = 0;
    do
    {
        n = read(input_fd, buf, sizeof(buf));
        if (0 == n)
            break;
        if (n < 0)
        {
            if (errno == EINTR)
                continue;
            perror(nullptr);
            close(input_fd);
            return 1;
        }
        if (n != write_data(output_fd, buf, n))
        {
            perror(nullptr);
            close(input_fd);
            return 1;
        }
    } while (true);
    close(input_fd);
    return 0;
}
inline void usage(FILE * out, const char * name)