Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 ALT Master 2.4 / byacc   Nick Leuta   19 Dec 2004 20:40:21 
 Re: ALT Master 2.4 / byacc   Nick Gazaloff   19 Dec 2004 20:44:53 
 Re: ALT Master 2.4 / byacc   Nick Leuta   20 Dec 2004 03:47:17 
Архивное /ru.linux/65775486e32d.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional