**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

files_data[i].uncompressed_size = info_in.st_size;
        files_data[i].start = pointer;
        
        
        if (0 != compress(input_fd, output_fd, level, pointer, info_in))
        {
            perror(nullptr);
            delete [] files_data;
            return 1;
        }
        
        
        
        if (0 != close(input_fd))
            perror(nullptr);
        files_data[i].end = pointer;
    }
    
    metadata.start_of_files_data = pointer;
    if (0 != saveMetaData(names, count, output_fd, metadata, files_data, pointer, sum_file_size))
    {
        delete [] files_data;
        return 1;
    }
    delete [] files_data;
    return 0;
}
int copy_decompressor(const char *self, int output_fd)