Opened 3 years ago

Closed 8 months ago

#2528 closed enhancement (invalid)

Detect in configure if linking (aac encoders) will fail

Reported by: simonb Owned by:
Priority: wish Component: build system
Version: git-master Keywords: libaacplus libfdk-aac libvo-aac
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
How to reproduce:

./configure --enable-gpl --enable-nonfree --enable-runtime-cpudetect --enable-libfaac --enable-libfdk-aac --enable-librtmp --enable-libmp3lame  --enable-nonfree --enable-libopenjpeg --enable-libpulse --enable-libspeex --enable-libopus --enable-libtheora --enable-libvo-aacenc --enable-version3 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-libaacplus --enable-libdc1394 --enable-libflite --enable-libv4l2 --enable-dxva2 --enable-vaapi --enable-vda --enable-vdpau --enable-libcaca --enable-static --disable-shared --disable-debug

Multiple definition errors when compiling for static build (haven't tried shared library). If this can't be made to work (since it is a problem with the libraries sharing the same code) then perhaps the configure script can detect the condition and advise to disable the conflicting options.

/usr/local/lib/libaacplus.a(bitbuffer.o): In function `CreateBitBuffer':
/home/simonb/libaacplus-2.0.2/src/bitbuffer.c:61: multiple definition of `CreateBitBuffer'
/usr/local/lib/libvo-aacenc.a(bitbuffer.o):/home/simonb/vo-aacenc-0.1.2/aacenc/src/bitbuffer.c:61: first defined here
/usr/local/lib/libaacplus.a(bitbuffer.o): In function `DeleteBitBuffer':
/home/simonb/libaacplus-2.0.2/src/bitbuffer.c:94: multiple definition of `DeleteBitBuffer'
/usr/local/lib/libvo-aacenc.a(bitbuffer.o):/home/simonb/vo-aacenc-0.1.2/aacenc/src/bitbuffer.c:84: first defined here
/usr/local/lib/libaacplus.a(bitbuffer.o): In function `ResetBitBuf':
/home/simonb/libaacplus-2.0.2/src/bitbuffer.c:115: multiple definition of `ResetBitBuf'
/usr/local/lib/libvo-aacenc.a(bitbuffer.o):/home/simonb/vo-aacenc-0.1.2/aacenc/src/bitbuffer.c:100: first defined here
/usr/local/lib/libaacplus.a(bitbuffer.o): In function `CopyBitBuf':
/home/simonb/libaacplus-2.0.2/src/bitbuffer.c:137: multiple definition of `CopyBitBuf'
/usr/local/lib/libvo-aacenc.a(bitbuffer.o):/home/simonb/vo-aacenc-0.1.2/aacenc/src/bitbuffer.c:120: first defined here
/usr/local/lib/libaacplus.a(bitbuffer.o): In function `GetBitsAvail':
/home/simonb/libaacplus-2.0.2/src/bitbuffer.c:178: multiple definition of `GetBitsAvail'
/usr/local/lib/libvo-aacenc.a(bitbuffer.o):/home/simonb/vo-aacenc-0.1.2/aacenc/src/bitbuffer.c:131: first defined here
/usr/local/lib/libaacplus.a(bitbuffer.o): In function `WriteBits':
/home/simonb/libaacplus-2.0.2/src/bitbuffer.c:255: multiple definition of `WriteBits'
/usr/local/lib/libvo-aacenc.a(bitbuffer.o):/home/simonb/vo-aacenc-0.1.2/aacenc/src/bitbuffer.c:148: first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x0): multiple definition of `bookSbrNoiseBalanceL11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x10d0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x20): multiple definition of `bookSbrNoiseBalanceC11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1100): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0xa0): multiple definition of `v_Huff_NoiseLevelL11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1180): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0xe0): multiple definition of `v_Huff_NoiseLevelC11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x11c0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x1e0): multiple definition of `bookSbrEnvBalanceL11F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x12c0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x200): multiple definition of `bookSbrEnvBalanceC11F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x12e0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x270): multiple definition of `bookSbrEnvBalanceL11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1350): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x2a0): multiple definition of `bookSbrEnvBalanceC11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1380): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x320): multiple definition of `v_Huff_envelopeLevelL11F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1400): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x360): multiple definition of `v_Huff_envelopeLevelC11F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1440): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x460): multiple definition of `v_Huff_envelopeLevelL11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1540): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x4a0): multiple definition of `v_Huff_envelopeLevelC11T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1580): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x5a0): multiple definition of `bookSbrEnvBalanceL10F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1680): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x5e0): multiple definition of `bookSbrEnvBalanceC10F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x16c0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x6c0): multiple definition of `bookSbrEnvBalanceL10T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x17a0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x700): multiple definition of `bookSbrEnvBalanceC10T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x17e0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x7e0): multiple definition of `v_Huff_envelopeLevelL10F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x18c0): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0x860): multiple definition of `v_Huff_envelopeLevelC10F'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1940): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0xa60): multiple definition of `v_Huff_envelopeLevelL10T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1b40): first defined here
/usr/local/lib/libaacplus.a(sbr_rom.o):(.rodata+0xae0): multiple definition of `v_Huff_envelopeLevelC10T'
/usr/local/lib/libfdk-aac.a(lt2-sbr_rom.o):(.rodata+0x1bc0): first defined here

Attachments (1)

testaacencoder.c (188 bytes) - added by cehoyos 3 years ago.

Download all attachments as: .zip

Change History (4)

comment:1 Changed 3 years ago by cehoyos

  • Keywords libfdk-aac libvo-aac added
  • Priority changed from normal to wish
  • Reproduced by developer set
  • Status changed from new to open
  • Summary changed from enable-libaacplus mutually exclusive to enable-libfdk-aac or enable-libvo-aacenc to Detect in configure if linking (aac encoders) will fail
  • Type changed from defect to enhancement
  • Version changed from unspecified to git-master

Did you already report this to the maintainers of libaacplus, libfdk and libvo?
Because this cannot be fixed in FFmpeg afaict, and I wonder how useful the (non-trivial) configure check is.

Version 0, edited 3 years ago by cehoyos (next)

Changed 3 years ago by cehoyos

comment:2 Changed 3 years ago by cehoyos

I attached a short c file that allows to reproduce the problem with:
$ gcc testaacencoder.c -lfdk-aac -laacplus -lm

comment:3 Changed 8 months ago by Timothy_Gu

  • Resolution set to invalid
  • Status changed from open to closed

libaacplus and libvo-aacenc have been removed.

Note: See TracTickets for help on using tickets.