Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 3 years ago

Closed 3 years ago

#656 closed defect (fixed)

smc_coherence name conflict

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone:
Component: helenos/unspecified Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

When we compile with:

  • select profile ia32
  • enable Dynamic linking support
  • enable Light weight futex locks

we get the build error:

/usr/local/cross/ia32/bin/i686-pc-linux-gnu-gcc  -I../../lib/urcu/ -I../../lib/c/include -I../../lib/c/arch/ia32/include -I../../../abi/include -O3 -imacros ../../../config.h -fexec-charset=UTF-8 -fwide-exec-charset=UTF-32LE -finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc -Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes -std=gnu99 -Werror-implicit-function-declaration -Wwrite-strings -pipe -ggdb -D__LE__ -Werror -march=pentium -fno-omit-frame-pointer -I../../lib/urcu -c generic/elf/elf_load.c -o generic/elf/elf_load.o
In file included from generic/elf/elf_load.c:54:0:
../../lib/c/include/smc.h:40:52: error: macro "smc_coherence" passed 2 arguments, but takes just 1
 extern int smc_coherence(void *address, size_t size);
                                                    ^
generic/elf/elf_load.c: In function 'load_segment':
generic/elf/elf_load.c:427:45: error: macro "smc_coherence" passed 2 arguments, but takes just 1
   if (smc_coherence(seg_ptr, entry->p_filesz))
                                             ^
../../Makefile.common:402: recipe for target 'generic/elf/elf_load.o' failed
make[2]: *** [generic/elf/elf_load.o] Error 1
make[2]: Leaving directory '/data/helenos/main-clone/uspace/lib/c'
Makefile:282: recipe for target 'lib/c.build' failed
make[1]: *** [lib/c.build] Error 2
make[1]: Leaving directory '/data/helenos/main-clone/uspace'
Makefile:50: recipe for target 'all' failed
make: *** [all] Error 2

note that smc_coherence can be:

  • a function in uspace/lib/c/include/smc.h (2 arguments)
  • a macro in uspace/lib/c/arch/*/include/libarch/barrier.h (1 argument)

Change History (1)

comment:1 Changed 3 years ago by Jakub Jermář

Resolution: fixed
Status: newclosed

Fixed in mainline,2480.

Note: See TracTickets for help on using tickets.