|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Nick Leuta 2:5020/400 20 Dec 2004 03:47:17 To : Nick Gazaloff Subject : Re: ALT Master 2.4 / byacc -------------------------------------------------------------------------------- "Nick Gazaloff" <nick@sbin.org> сообщил/сообщила в новостях следующее: > Nick Leuta wrote: > > Вот стало ("как всегда", т.е. нежданно-негаданно) интересно, нафига было > > выкидывать из дистрибутива byacc? Я конечно понимаю, что bison - это круто и > > все такое, но учитывая, что byacc и bison не-100% совместимы, всегда ведь > > найдется какой-нибудь хитрый код, который скомпилируется после обработки > > одним и не скомпилируется после другого... > > [nick@beta ~]$ file `which byacc` > /usr/bin/byacc: symbolic link to `yacc' > [nick@beta ~]$ file `which yacc` > /usr/bin/yacc: Bourne shell script text executable > [nick@beta ~]$ cat `which yacc` > #! /bin/sh > exec /usr/bin/bison -y "$@" > > Это такое давным-давно, аж в RH 7.0. И ничего, работает. Да ну? А как же я тогда это раньше собирал, до появления ALT 2.4? Hа счет "работает" как минимум один пример я привел... В работающий *.y вставить #include какого-нибудь хедера от OpenSSL, например, openssl/ssl.h, openssl/x509.h ... Google наводит на мысль, что это не единственная возможная ситуация, когда есть шансы напороться на разницу в поведении между bison'ом и byacc. Hекоторые ситуации можно вылечить правкой самих *.y, но не все... А вот насчет общепринятых способов комплектования дистрибутивов предлагаю эдакий краткий обзор: Red Hat Linux release 9 (Shrike) $ file `which byacc` /usr/bin/byacc: symbolic link to `yacc' $ file `which yacc` /usr/bin/yacc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped $ rpm -qf /usr/bin/yacc byacc-1.9-25 (так что там в RH7.0, кстати??? В 7.2, хоть его у меня уже и не осталось, ситуация была как в примере с 9-кой) Fedora Core release 2 (Tettnang) $ file `which byacc` /usr/bin/byacc: symbolic link to `yacc' $ file `which yacc` /usr/bin/yacc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped $ rpm -qf /usr/bin/yacc byacc-1.9-27 Mandrake Linux release 9.2 (FiveStar) for i586 $ file `which byacc` /usr/bin/byacc: symbolic link to `yacc' $ file `which yacc` /usr/bin/yacc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped $ rpm -qf /usr/bin/yacc byacc-1.9-14mdk Debian GNU/Linux 3.0 $ file `which byacc` /usr/bin/byacc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped я не очень хорошо знаком с Дебиановским пакетным менеджером, поэтому поступлю так: $ /usr/bin/byacc --version usage: /usr/bin/byacc [-dlrtv] [-b file_prefix] [-p symbol_prefix] filename $ /usr/bin/bison --version bison++ Version 1.21-8, adapted from GNU bison by coetmeur@icdc.fr (ну byacc это byacc, проверено на опыте :-) ) $ file `which yacc` /usr/bin/yacc: symbolic link to /etc/alternatives/yacc $ file `which /etc/alternatives/yacc` /etc/alternatives/yacc: symbolic link to /usr/bin/bison++.yacc И, наконец, ALT Master 2.2: $ file `which byacc` /usr/bin/byacc: symbolic link to `yacc' $ file `which yacc` /usr/bin/yacc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.18, dynamically linked (uses shared libs), stripped $ rpm -qf /usr/bin/yacc byacc-1.9-ipl9mdk Т.е. получается, что "сбоку-припеку" как раз bison, а не byacc... Я конечно в курсе, что последние bison'ы хотят "завести" bin/yacc на себя, и что byacc тоже по умолчанию ставится как bin/yacc, что создает конфликтную ситуацию. Hо кто мешает ставить byacc как bin/byacc, bison - как bin/bison, а bin/yacc - хоть отдать bison'у, хоть пойти по Debian'овкому пути и дать возможность выбирать из альтернатив (тем более, что ALT такое практикует - чуть ли не несколько версий gcc держать можно, как я успел заметить) - ну никак не могу понять?.. -- SkyNick --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/65775486e32d.html, оценка из 5, голосов 10
|