Tôi đã làm điều này trong quá khứ cho các thư viện nhưng không xây dựng các công cụ, vì vậy tôi không hiểu tại sao những điều sau không nên làm việc khác sau đó là các vấn đề tương thích nhị phân nếu bạn xây dựng bất kỳ thư viện nào. Như Vitalurr đã chỉ ra đây không phải là một cách tiếp cận lý tưởng và bạn có thể gặp phải các vấn đề nhưng về mặt kỹ thuật có thể thực hiện theo cách này.
Cách mà tôi đã thực hiện điều này là bao gồm gói (trong trường hợp của bạn là GCC) trong dự án của tôi và đặt bản dựng / sử dụng trong bản dựng (trong kho lưu trữ) để chỉ xây dựng cho các kiến trúc không có phiên bản đủ mới.
Tôi cũng sẽ đưa BuildRequires: gcc >= 4.8
vào thông số kỹ thuật của bạn để đảm bảo phiên bản mới hơn được chọn nhưng điều đó không cần thiết
Một ví dụ có thể được tìm thấy trong https://build.opensuse.org/project/monitor/X11:Enlightenment:Factory gói luajit chỉ có sẵn trong kho lưu trữ openSUSE: Factory , vì vậy tôi có một bản sao trong kho lưu trữ xây dựng cho mọi thứ nhưng openSUSE: Factory sử dụng cái được cung cấp trong kho lưu trữ ngược dòng.
Trong kho lưu trữ của bạn, bạn có thể phân nhánh gói hiện có , điều đó có nghĩa là bạn có thể tìm thấy một phiên bản gcc đã có sẵn trên obs và sử dụng nó thay vì tạo riêng của bạn.