Compiling R9B-0 on SuSE Linux Linux 8.1

Roger Price <>
Sat Mar 8 00:14:31 CET 2003


On 5 Mar 2003, Kent Boortz wrote:

> You could try to remove the "config.cache" file and rerun configure.

Hello Kent,

I removed "config.cache", and successfully ran ./configure.
I then ran make clean; make and got the following message:


gcc -o /mnt/home/erlang/otp_src_R9B-0/bin/i686-pc-linux-gnu/beam.instr \
 -Wl,-export-dynamic /mnt/home/erlang/otp_src_R9B-0/erts/
 obj.instr.beam/i686-pc-linux-gnu/erl_main.o
 ...... lots of .o's removed........
 -lresolv -ldl -lm -L/mnt/home/erlang/otp_src_R9B-0/erts/obj/i686-pc-linux-gnu -lz

/mnt/home/erlang/otp_src_R9B-0/erts/obj.instr.beam/i686-pc-linux-gnu/ttsl_drv.o:
 In function `start_termcap':
/mnt/home/erlang/otp_src_R9B-0/erts/emulator/drivers/unix/ttsl_drv.c:599:
     undefined reference to `tgetent'
 ...... similar messages removed........
/mnt/home/erlang/otp_src_R9B-0/erts/obj.instr.beam/i686-pc-linux-gnu/ttsl_drv.o:
     In function `move_left':
/mnt/home/erlang/otp_src_R9B-0/erts/emulator/drivers/unix/ttsl_drv.c:611:
     undefined reference to `tputs'
 ...... similar messages removed........
collect2: ld returned 1 exit status
make[2]: ***
[/mnt/home/erlang/otp_src_R9B-0/bin/i686-pc-linux-gnu/beam.instr] Error 1
make[2]: Leaving directory `/mnt/home/erlang/otp_src_R9B-0/erts/emulator'
make[1]: *** [instr] Error 2
make[1]: Leaving directory `/mnt/home/erlang/otp_src_R9B-0/erts/emulator'
make: *** [emulator.instr] Error 2

It looks as if function tgetent is called in ttsl.drv which has been
compiled twice.  The first time, in erts/obj, the linking was ok, but then
in erts/obj.instr it failed.

Any suggestions would be much appreciated.
Best Regards,
Roger
________________________________________________________________________
> If it still doesn't work, could you please send me the output from
> the program
>
>   #include <stdio.h>
>
>   int main()
>   {
>     printf("void * = %d\n", sizeof(void *));
>     printf("size_t = %d\n",sizeof(size_t));
>     printf("int    = %d\n",sizeof(int));
>     printf("long   = %d\n",sizeof(long));
>     exit(0);
>   }

void * = 4
size_t = 4
int    = 4
long   = 4





More information about the erlang-questions mailing list