Can't compile Asterisk on FC6, when I could on FC5

What do you think of my thread question?

  • It has too much unnecessary information.
  • It is stated clearly and well.
  • It is a very unusual problem.

0 voters

Hello,

I am using Asterisk on a 64-bit Fedora Core 6 Linux installation (x86_64). Before I upgraded to FC6, I was using Fedora Core 5, and I successfully compiled and installed Asterisk version 1.4.0-beta3. Now, after I upgraded to Fedora Core 6, I also wanted to upgrade my Asterisk to version 1.4.0 (stable version).

However, for some reason, after I upgraded to Fedora Core 6, no version of Asterisk will compile. Not the beta, not the stable. I’m stuck with the already-installed beta version that remains from FC5. The make process fails when some dynamic- or static-linking library doesn’t work because of some 64-bit issue. (People on the Web claim similar problems not related to Asterisk, and they all have 64-bit systems.)

Since make doesn’t repeat successfully-compiled steps, I have copied below the output of running make a second time (which skips the unnecessary steps):

[... asterisk-1.4.0]$ make menuselect/menuselect --check-deps menuselect.makeopts make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. make[1]: Nothing to be done for `all'. [LD] func_curl.o -> func_curl.so /usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.1.1/../../../../lib64/libidn.a(t outf8.o): relocation R_X86_64_32 against `a local symbol' can not be used when m aking a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-redhat-linux/4.1.1/../../../../lib64/libidn.a: could not rea d symbols: Bad value collect2: ld returned 1 exit status make[1]: *** [func_curl.so] Error 1 make: *** [funcs] Error 2

Here is what happens when I run make with some debugging options:

[code][… asterisk-1.4.0]$ make --debug=bvijm
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
File cleantest' does not exist. Must remake targetcleantest’.
Successfully remade target file cleantest'. Fileutils’ does not exist.
Prerequisite menuselect/menuselect' is newer than targetmenuselect.m
akeopts’.
Must remake target menuselect.makeopts'. menuselect/menuselect --check-deps menuselect.makeopts Successfully remade target filemenuselect.makeopts’.
Must remake target `utils’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. Must remake targetall’.
Successfully remade target file all'. make[1]: Nothing to be done forall’.
Successfully remade target file utils'. Fileagi’ does not exist.
Must remake target `agi’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. Must remake targetall’.
Successfully remade target file all'. make[1]: Nothing to be done forall’.
Successfully remade target file agi'. Fileres’ does not exist.
Must remake target `res’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
Must remake target _all'. Successfully remade target file_all’.
Must remake target all'. Successfully remade target fileall’.
make[1]: Nothing to be done for all'. Successfully remade target fileres’.
File channels' does not exist. Must remake targetchannels’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
Must remake target _all'. Successfully remade target file_all’.
Must remake target all'. Successfully remade target fileall’.
make[1]: Nothing to be done for all'. Successfully remade target filechannels’.
File pbx' does not exist. Must remake targetpbx’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
Must remake target _all'. Successfully remade target file_all’.
Must remake target all'. Successfully remade target fileall’.
make[1]: Nothing to be done for all'. Successfully remade target filepbx’.
File apps' does not exist. Must remake targetapps’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
Must remake target _all'. Successfully remade target file_all’.
Must remake target all'. Successfully remade target fileall’.
make[1]: Nothing to be done for all'. Successfully remade target fileapps’.
File codecs' does not exist. Must remake targetcodecs’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
Must remake target _all'. Successfully remade target file_all’.
Must remake target all'. Successfully remade target fileall’.
make[1]: Nothing to be done for all'. Successfully remade target filecodecs’.
File formats' does not exist. Must remake targetformats’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
Must remake target _all'. Successfully remade target file_all’.
Must remake target all'. Successfully remade target fileall’.
make[1]: Nothing to be done for all'. Successfully remade target fileformats’.
File cdr' does not exist. Must remake targetcdr’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
Must remake target _all'. Successfully remade target file_all’.
Must remake target all'. Successfully remade target fileall’.
make[1]: Nothing to be done for all'. Successfully remade target filecdr’.
File funcs' does not exist. Must remake targetfuncs’.
GNU Make 3.81
Copyright © 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
Reading makefiles…
Updating goal targets…
File all' does not exist. File_all’ does not exist.
File func_curl.so' does not exist. Must remake targetfunc_curl.so’.
[LD] func_curl.o -> func_curl.so
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.1.1/…/…/…/…/lib64/libidn.a(t
outf8.o): relocation R_X86_64_32 against `a local symbol’ can not be used when m
aking a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/…/…/…/…/lib64/libidn.a: could not rea
d symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [func_curl.so] Error 1
make: *** [funcs] Error 2[/code]

I read on the Internet that you’re supposed to modify the makefile to include CFLAGS=-fPIC or in this case ASTCFLAGS=-fPIC, but it doesn’t seem to have an effect. (Do I have to put it in more than one place?) Aside from this, I’ve even tried setting environment variables as such, re-running the configure script, and re-making, but that still doesn’t fix the problem.

Is there any way to repair/replace the broken library, or misuse thereof? Is there another yum or rpm package I must install to get this to work? What must I change? O What shall I do?[/b]

if you do not need func_curl you can go in the makefiles and remove it, then itr will not be compiled and you won’t get the error…