1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

DEV: libowfat - ugh!

Discussion in 'Tomato Firmware' started by rhester72, Apr 16, 2010.

  1. rhester72

    rhester72 Network Guru Member

    libowfat is failing compile with the K26 SDK because of missing atomic builtins:

    mipsel-uclibc-gcc -g -o t t.o libowfat.a `cat libsocket` -lpthread
    t.o: In function `compare_and_swap':
    t.c:(.text.compare_and_swap+0xc): undefined reference to `__sync_bool_compare_and_swap_4'
    t.o: In function `main':
    t.c:(.text.main+0x28): undefined reference to `__sync_add_and_fetch_4'
    t.c:(.text.main+0x64): undefined reference to `__sync_add_and_fetch_4'
    collect2: ld returned 1 exit status
    make: *** [t] Error 1
    The strange part is that these are a part of GCC 4.1.2 or better (we are using GCC 4.2.4) and I have confirmed they are indeed present in the mipsel cross-compiler cc1 and ccplus binaries. I'm sure my path to mipsel-uclibc-gcc is correct.

    Anyone seen anything like this before? OpenWRT doesn't seem to have special-cased this library at all, I am utterly lost as to why it isn't using the builtins (I'm obviously not using -fno-builtin and I am not using -march, the two "gotchas" as documented in the GCC manual).

    This really should "just work", but it doesn't. :/


  2. teddy_bear

    teddy_bear Network Guru Member

    Just tried - compiled with no hiccup:
    make -C libowfat-0.28 CROSS=mipsel-linux- DIET=
  3. rhester72

    rhester72 Network Guru Member

    It's CVS that blows up. Where did you get 0.28? Per their home page, there are no "releases" yet.

  4. teddy_bear

    teddy_bear Network Guru Member

  5. rhester72

    rhester72 Network Guru Member

    You're right, works with non-CVS. A hint of things to come? :)


Share This Page