Operating System - HP-UX
1830045 Members
13869 Online
109998 Solutions
New Discussion

checking lex output file root... configure: error: cannot find output from flex; giving up

 
SOLVED
Go to solution
Paolo_c
Valued Contributor

checking lex output file root... configure: error: cannot find output from flex; giving up

 

We're seeing the following error when running ./configure of unixODBC 2.3.9 on a HP-UX Server running 11.31 and wondering how to resolve it.

uxxxxxx:/tmp/unixODBC-2.3.9#./configure
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gawk... (cached) gawk
checking for bison... bison -y
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) gcc3
checking for flex... flex
checking lex output file root... configure: error: cannot find output from flex; giving up

Prior to running configure i installed all the pre-compiled unixODBC dependencies inc gcc 4.2.3, Automake 1.15 , AutoConf 2.71 , GNU m4 1.4.19, perl 5.34 and Libiconv 1.16 , libtool 2.4.6, libunistring 1.0, flex 2.6.4, gawk 5.1.1 , bison 3.8 etc and then ran the following steps to export the path of gcc * to environment variables

 

# export PATH=$PATH:/usr/local/bin
# export PATH=$PATH:/usr/local/lib
# cd unixODBC-2.3.9

#./configure 

 

 

 

 

11 REPLIES 11
Paolo_c
Valued Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Good afternoon, I was hoping that someone might have encountered the issue before and, more importantly, know the workaround ? Im not sure if the following helps but if i run #which lex and #which flex it is only returning the location for flex . Is lex the same as flex and if so do i need to set-up a soft link like : "ln -s /usr/local/bin/flex lex" so that lex references flex  ?

# which flex
/usr/local/bin/flex

# which lex
no lex in /usr/sbin /usr/bin /usr/ccs/bin /usr/contrib/bin /usr/contrib/Q4/bin /opt/perl/bin /opt/gvsd/bin /opt/ipf/bin /opt/nettladm/bin /opt/fcms/bin /opt/wbem/bin /opt/wbem/sbin /opt/sas/bin /opt/graphics/common/bin /opt/atok/bin /usr/bin/X11 /usr/contrib/bin/X11 /opt/sec_mgmt/bastille/bin /opt/caliper/bin /opt/drd/bin /opt/dsau/bin /opt/dsau/sbin /opt/resmon/bin /opt/firefox /opt/gnome/bin /opt/propplus/bin /usr/contrib/kwdb/bin /opt/perl_32/bin /opt/perl_64/bin /opt/prm/bin /opt/sfm/bin /opt/swm/bin /opt/sec_mgmt/spc/bin /opt/ssh/bin /opt/swa/bin /opt/hpsmh/bin /opt/thunderbird /opt/sentinel/bin /opt/langtools/bin /opt/gwlm/bin /opt/ignite/bin /sbin /home/root /usr/local/lib /usr/local/bin

 

 

Paolo_c
Valued Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

I saw a few posts online which indicated that flex/lex are not required for this configuration so removed and retried .configuration of unixODBC 2.3.9. The configuration got a lot further than before but failed with the following error....

checking for setlocale... yes
checking for strchr... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
./config.status[848]: 23743 Killed
config.status: creating Makefile
/usr/lib/hpux64/dld.so: Unable to find library '/usr/local/lib/hpux64/libintl.so'.
./config.status[1426]: 23757 Killed
config.status: error: could not create Makefile

A check on the system reveals that there is a 32 bit version of the missing library usr/local/lib/hpux32/libintl.so
but no 64 bit version.

#find / -name "libintl.so"
/opt/gtk2.6/lib/libintl.so
/usr/local/lib/hpux32/libintl.so

for the purpose of the configuration/compile of unixODBC would it be worthwhile assigning a soft link to point /usr/local/lib/hpux64/libintl.so >> /usr/local/lib/hpux32/libintl.so and retrying the configuration ? (hopefully someone is seeing this output and im not talking into an echo chamber  )

 

 

Suman_1978
HPE Pro

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Hi,

I have not found any documents or articles with this error and solution.
May be you need to check out this forum.
https://stackoverflow.com/questions/23128949/compiling-gcc-cannot-find-output-from-flex-giving-up

Thanks



I work at HPE
HPE Support Center offers support for your HPE services and products when and how you need it. Get started with HPE Support Center today.
[Any personal opinions expressed are mine, and not official statements on behalf of Hewlett Packard Enterprise]
Accept or Kudo
Paolo_c
Valued Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Thanks for the feedback. I managed to get past that particular error by installing the 64 bit version of gettext and libiconv (after removing the 32 bit versions id installed last week). All of the other unixODBC dependencies installed (Inc GNU m4 , Autoconf and Automake) are all 64 bit.

The only version installed 32 bit is gcc 4.2.3 (as couldnt find a 64 bit version available)., but wondering if that might be the limiting factor now because although search for libictl.so now shows it is referencing the correct 64 bit library it was previously looking for. if i now run ./configure of unixODBC it bombs out with the compile error below  ! 

#find / -name "libintl.so"
/opt/gtk2.6/lib/libintl.so
/usr/local/lib/hpux64/libintl.so  <<<<<<<<<<<<<<<<<<<<<<

Im hoping that in order to address this issue im not going to be faced with having to uninstall all of the 64 bit s/w dependencies (of which there are quite a few ! ) that i installed last and installing 32 bit variants instead ?  I have also forwarded these details to the developer responsible for unixODBC and so hoping that this will lead me closer to a fix for this issue ( or consider looking for an  alternative solution to installing unixODBC - which so far is proving to be a major pain to install !). 

 

:/tmp/unixODBC-2.3.9#./configure

checking for a BSD-compatible install... ./install-sh -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... ./install-sh -c -d

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking whether make supports nested variables... yes

checking for gawk... (cached) gawk

checking for bison... bison -y

checking for style of include used by make... GNU

checking for gcc... gcc

checking whether the C compiler works... no                             <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

configure: error: in `/tmp/unixODBC-2.3.9':

configure: error: C compiler cannot create executables            <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

See `config.log' for more details

Steven Schweda
Honored Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

> I managed to get past that particular error by installing the 64 bit
> version of gettext and libiconv [...]

   Ok.

> [...] (after removing the 32 bit versions id installed last week).
> [...]

   Wasted effort?  32- and 64-bit versions of those programs/libraries
should be able to co-exist.  (Typically in different directories.)

> The only version installed 32 bit is gcc 4.2.3 (as couldnt find a 64
> bit version available)., [...]

   I wouldn't bet that there is one, or that you'd need one if it
existed.  I'd expect a 32-bit compiler to be able to generate 32- or
64-bit object code.

> checking whether the C compiler works... no [...]

   Previously, that wasn't a problem:

> checking for gcc... gcc
> checking whether the C compiler works... yes

   So, you appear to have damaged the C compiler.  If you can't undo
that damage, then you might want/need to re-install GCC.

> See `config.log' for more details

   Did you look there for clues?  (I can't see it from here.)
Otherwise, you might try to compile any simple C program manually, and
see what goes wrong.

Paolo_c
Valued Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Hi Steven, 

 

Thanks for the feedback. Please see my responses below. 

   So, you appear to have damaged the C compiler.  If you can't undo
that damage, then you might want/need to re-install GCC.

> See `config.log' for more details

   Did you look there for clues?  (I can't see it from here.)
Otherwise, you might try to compile any simple C program manually, and
see what goes wrong....>> 

>>I reinstalled gcc 4.2.3 this morning and rertan ./configure which threw out the same error as before. If i look in the config .log (see below) it shows a problem referencing the library: libintl.so

+++++++++++++++++++++++++++++++++++++++++++++++++

configure:3699: checking for C compiler version
configure:3708: gcc --version >&5
/usr/lib/hpux32/dld.so: Unable to find library 'libintl.so'.
./configure[3710]: 25196 Killed
configure:3719: $? = 137
configure:3708: gcc -v >&5
/usr/lib/hpux32/dld.so: Unable to find library 'libintl.so'.
./configure[3710]: 25201 Killed
configure:3719: $? = 137
configure:3708: gcc -V >&5
/usr/lib/hpux32/dld.so: Unable to find library 'libintl.so'.
./configure[3710]: 25206 Killed
configure:3719: $? = 137
configure:3708: gcc -qversion >&5
/usr/lib/hpux32/dld.so: Unable to find library 'libintl.so'.
./configure[3710]: 25211 Killed
configure:3719: $? = 137
configure:3739: checking whether the C compiler works
configure:3761: gcc conftest.c >&5
/usr/lib/hpux32/dld.so: Unable to find library 'libintl.so'.
./configure[3763]: 25220 Killed
configure:3765: $? = 137
configure:3803: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "unixODBC"
| #define PACKAGE_TARNAME "unixODBC"
| #define PACKAGE_VERSION "2.3.9"
| #define PACKAGE_STRING "unixODBC 2.3.9"
| #define PACKAGE_BUGREPORT "nick@unixodbc.org"
| #define PACKAGE_URL ""
| #define PACKAGE "unixODBC"
| #define VERSION "2.3.9"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3808: error: in `/tmp/unixODBC-2.3.9':
configure:3810: error: C compiler cannot create executables
See `config.log' for more details

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Prior to installing libiconv and gettext (64 bit) depots yesterday when i ran the same ./configure under unixODBC it was complaining it was unable to find : /usr/local/lib/hpux64/libintl.so .......................

checking for strchr... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
./config.status[848]: 23743 Killed
config.status: creating Makefile
/usr/lib/hpux64/dld.so: Unable to find library '/usr/local/lib/hpux64/libintl.so'. <<<<<<<<<<<<<<<<<<
./config.status[1426]: 23757 Killed
config.status: error: could not create Makefile

Prior to rerunning configure this morning (post reinstall of gcc) i checked that libintl.so is in the following location...

#find / -name "libintl.so"
/opt/gtk2.6/lib/libintl.so
/usr/local/lib/hpux64/libintl.so

And also ensured that the build dependencies /usr/local/lib and /usr/local/bin were in the front of our PATH. (when previously just had them at the end)

/tmp/unixODBC-2.3.9#echo $PATH

/usr/local/lib:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/contrib/bin:/usr/contrib/Q4/bin:/opt/perl/bin:/opt/gvsd/bin:/opt/ipf/bin:/opt/nettladm/bin:/opt/fcms/bin:/opt/wbem/bin:/opt/wbem/sbin:/opt/sas/bin:/opt/graphics/common/bin:/o........

Paolo_c
Valued Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Hi Steven, 

Easysoft previously told me that they compiled unixODBC using the native HP-UX compilers rather than use gcc , so i  just tried removed gcc and reran .configure which completed okay and then ran make compile which got a lot further than before but bombed out with a new error below....

 

(Bundled) cc: warning 922: "-b" is unsupported in the bundled compiler, ignored.
ld: (Warning) Unsatisfied symbol "main" in file /usr/lib/hpux32/libc.so
1 warning.
libtool: link: (cd ".libs" && rm -f "libodbc.so.2" && ln -s "libodbc.so.2.0" "libodbc.so.2")
libtool: link: (cd ".libs" && rm -f "libodbc.so" && ln -s "libodbc.so.2.0" "libodbc.so")
libtool: link: rm -fr .libs/libodbc.lax
libtool: link: ( cd ".libs" && rm -f "libodbc.la" && ln -s "../libodbc.la" "libodbc.la" )
Making all in exe
source='isql.c' object='isql.o' libtool=no \
DEPDIR=.deps depmode=hp2 /bin/sh ../depcomp \
cc -DHAVE_CONFIG_H -I. -I.. -I../include -I../libltdl -mt -c -o isql.o isql.c
/bin/sh ../libtool --tag=CC --mode=link cc -mt -o isql isql.o ../DriverManager/libodbc.la ../extras/libodbcextra slc.la -lpthread
libtool: link: cc -mt -o .libs/isql isql.o ../DriverManager/.libs/libodbc.so ../extras/.libs/libodbcextraslc.a -lpthread -mt -Wl ,+b -Wl,/usr/local/lib
ld: Unknown input file type: "../DriverManager/.libs/libodbc.so"
Fatal error.
*** Error exit code 1

Paolo_c
Valued Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Hi Steven, 

 

I came across the following post for the same error code associated with the same unixODBC install...

Solved: Re: UNIXODBC Installation into HP-UX 11.31 iA64 - Page 2 - Hewlett Packard Enterprise Community (hpe.com)

With the exception of step 1 below, Ive already followed all of the other steps listed. Do you think its worth trying to uninstall gnu-make and then retrying the steps or is there another fix for the error Unknown input file type: "../DriverManager/.libs/libodbc.so" for the last error encountered. Also where it referes to uninstalling previous gnu-make below is it referring to automake or make (as i previously installed both below alongside the other dependencies) ?

#swlist | grep make

 automake 1.15.1

 make 4.3 make

 

The problem is solved :D. Here is what we do:

1) uninstall the previous gnu-make

2) install gcc, gettext, libiconvi.

3) export PATH of gcc to environment variables

    eg: export PATH=$PATH:/usr/local/bin

         export PATH=$PATH:/usr/local/lib

4) gunzip the unixODBC file

5) then un-tar the file.

6) cd to the unixODBC folder

7) # ./configure

  Note: In case u want it to install in specific path, use

 eg: ./configure --prefix=/THE_WANTED_PATH

# make

9) # make install

mbarnwal
HPE Pro
Solution

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Hi Paolo,

 

I was able to compile this on my test VM but looks like you already fix it

 

I downloaded following files on a test 11.31 VM

gcc-4.2.4-11.31.sd  <== From https://www.hpux.ws/merijn/gcc-4.2.4-11.31.sd.bz

autoconf-2.71-ia64_64-11.31.depot.gz
automake-1.15.1-ia64_64-11.31.depot.gz
automake-1.16.5-ia64_64-11.31.depot.gz
gettext-0.21-ia64_64-11.31.depot.gz
libiconv-1.16-ia64_64-11.31.depot.gz
m4-1.4.19-ia64_64-11.31.depot.gz
perl-5.34.0-ia64_64-11.31.depot.gz  <== All these from http://hpux.connect.org.uk/
 
unixODBC-2.3.9  <== From http://www.unixodbc.org/

gcc installation installed the gcc binary @ /usr/local/ia64/bin/gcc so I created a link in /usr/bin

# ln -s /usr/local/ia64/bin/gcc /usr/bin/gcc

Also modified my PATH to include /usr/local/bin where most opensource binaries were installed

# export PATH=$PATH:/usr/local/bin

Now configure worked without any error.
make and "make install" also went fine and unixodbc binaries were installed in /usr/local/bin

root@bl860vm1:/usr/local/bin# ls -lrt | tail -10
lrwxr-xr-x   1 root       sys              6 Dec 12 13:22 lzgrep -> xzgrep
lrwxr-xr-x   1 root       sys              4 Dec 12 13:22 zstdmt -> zstd
lrwxr-xr-x   1 root       sys              4 Dec 12 13:22 unzstd -> zstd
lrwxr-xr-x   1 root       sys              4 Dec 12 13:22 zstdcat -> zstd
-rwxr-xr-x   1 root       sys          94308 Mar 23 15:22 isql
-rwxr-xr-x   1 root       sys         205584 Mar 23 15:22 dltest
-rwxr-xr-x   1 root       sys          80048 Mar 23 15:22 odbcinst
-rwxr-xr-x   1 root       sys          86488 Mar 23 15:22 iusql
-rwxr-xr-x   1 root       sys          73192 Mar 23 15:22 odbc_config
-rwxr-xr-x   1 root       sys          74088 Mar 23 15:22 slencheck

root@bl860vm1:/usr/local/bin# odbc_config
Usage: odbc_config
                [--prefix]
                [--exec-prefix]
                [--include-prefix]
                [--lib-prefix]
                [--bin-prefix]
                [--version]
                [--libs]
                [--static-libs]
                [--libtool-libs]
                [--cflags]
                [--odbcversion]
                [--longodbcversion]
                [--odbcini]
                [--odbcinstini]
                [--header]
                [--ulen]

 

 

Regards

Manish

I am a HPE Employee
Steven Schweda
Honored Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

> And also ensured that the build dependencies /usr/local/lib and
> /usr/local/bin were in the front of our PATH. [...]

   I wouldn't expect any "*/lib" to be helpful in PATH. But the actual
path to the "gcc" executable might be helpful.

> [...] using the native HP-UX compilers rather than use gcc , so i
> just tried removed gcc [...]

   Generally, you shouldn't need to remove GCC, just specify something
like "CC=cc" with the "configure" script.

> (Bundled) cc: warning 922: "-b" is unsupported in the bundled
> compiler, ignored.

   The bunfled C xompiler on HP-UX is not useful as a general-purpose C
xompiler.  If you didn't _buy_ a real HP[E] C sompiler, then you'll need
to use GCC.

>          export PATH=$PATH:/usr/local/lib

   "/usr/local/bin" might help if it wasn't already there.

> 4) gunzip the unixODBC file
> 5) then un-tar the file.

   I can't see your actual commands, but I'd expect something like the
following to save some disk space:

      gunzip -c <whatever>.gz | tar xf -

> # make

   What could go wrong?

Paolo_c
Valued Contributor

Re: checking lex output file root... configure: error: cannot find output from flex; givin

Hi Manish, 

 

Many thanks for your feedback. Installing gcc 4.2.4 (in place of gcc 4.2.3) and applying the soft link  /usr/bin/gcc -> /usr/local/ia64/bin/gcc proved to be the fix for this issue, so very grateful for the information you provided (and thanks to to everyone else that provided useful feedback) I have awarded kudos accordingly !