#!/bin/bash # # Script pentru fixare config.guess & config.sub pentru aarch64 # Limba: Română # # Culori VERDE='\033[0;32m' GALBEN='\033[1;33m' ALBASTRU='\033[0;34m' ROSU='\033[0;31m' NC='\033[0m' log_info() { echo -e "${ALBASTRU}[INFO]${NC} $1" } log_success() { echo -e "${VERDE}[SUCCES]${NC} $1" } log_error() { echo -e "${ROSU}[EROARE]${NC} $1" } log_warn() { echo -e "${GALBEN}[AVERTIZARE]${NC} $1" } echo -e "${ALBASTRU}" echo "═══════════════════════════════════════" echo " Fix config.guess pentru aarch64" echo "═══════════════════════════════════════" echo -e "${NC}" # Detectează platformă MACHINE=$(uname -m) SYSTEM=$(uname -s) log_info "Sistem detectat: $SYSTEM $MACHINE" # Verifică dacă config.guess există if [ ! -f "config.guess" ]; then log_error "config.guess nu găsit în directorul curent!" exit 1 fi # Backup original cp config.guess config.guess.bak cp config.sub config.sub.bak log_success "Backup creat: config.guess.bak, config.sub.bak" # Fixare pentru aarch64 if [ "$MACHINE" = "aarch64" ] || [ "$MACHINE" = "arm64" ]; then log_info "Detectat aarch64/arm64, aplicare fix..." # Metoda 1: Patch direct în config.guess pentru case aarch64 if grep -q "case \"\$machine\" in" config.guess; then # Găsește linia și adaugă case pentru aarch64 line_num=$(grep -n 'case "$machine" in' config.guess | head -1 | cut -d: -f1) if [ -n "$line_num" ]; then # Creează temp file cu patch head -n "$line_num" config.guess > config.guess.tmp # Adaugă case pentru aarch64 cat >> config.guess.tmp << 'EOF' aarch64*|arm64*) echo aarch64-unknown-linux-gnu exit 0 ;; EOF # Adaugă restul fișierului tail -n +$((line_num + 1)) config.guess >> config.guess.tmp mv config.guess.tmp config.guess chmod +x config.guess log_success "config.guess patched pentru aarch64" fi fi fi # Verifică config.sub pentru aarch64 if [ "$MACHINE" = "aarch64" ] || [ "$MACHINE" = "arm64" ]; then log_info "Verificare config.sub..." if ! grep -q "aarch64" config.sub; then log_warn "config.sub nu are suport aarch64, aplicare patch..." # Adaugă suport aarch64 în config.sub if grep -q "case \$cpu in" config.sub; then # Găsește linia și adaugă case pentru aarch64 sed -i '/case $cpu in/a\ \t\taarch64 | arm64)\ \t\t\tcpu=aarch64\ \t\t\t;;' config.sub log_success "config.sub patched pentru aarch64" fi else log_success "config.sub are deja suport aarch64" fi fi # Test log_info "Test config.guess..." RESULT=$(./config.guess 2>&1) if [ $? -eq 0 ]; then log_success "config.guess funcționează!" echo -e "${VERDE}Output: $RESULT${NC}" else log_error "config.guess tot nu merge!" echo -e "${ROSU}Output: $RESULT${NC}" log_warn "Revert la backup..." cp config.guess.bak config.guess cp config.sub.bak config.sub exit 1 fi # Cleanup rm -f config.guess.bak config.sub.bak echo "" echo -e "${VERDE}═══════════════════════════════════════${NC}" echo -e "${VERDE}Fix aplicat cu succes!${NC}" echo -e "${VERDE}═══════════════════════════════════════${NC}" echo "" echo "Acum poți rula: ./configure"