130 lines
3.6 KiB
Bash
Executable File
130 lines
3.6 KiB
Bash
Executable File
#!/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"
|
|
|