Package: clang Version: 3.1-8 Severity: normal I have a project that uses some GCC-specific features that do not work in clang (see 653256). Therefore, my code will only compile correctly if I use clang -U__GNUC__ (or alternately, #undef __GNUC__ in one of the headers). If I do this, however, clang ignores the visibility attributes I use and moreover, it does this *silently*.
If I use --save-temps, the preprocessed output does not contain the visibility attributes I placed on the functions, and because I use -fvisibility=hidden, those functions are all hidden instead of being visible. This leads to link errors. I see some possible solutions here: 1. clang stops defining __GNUC__, since it isn't, but still accepts GCC extensions (my preferred solution). 2. clang continues to (wrongly) define __GNUC__, but still accepts GCC extensions when -U__GNUC__. 3. clang refuses to accept GCC extensions without __GNUC__, but complains loudly when it encounters them. The current status is not acceptable. You can find source in the clang-test branch of git://github.com/bk2204/drew.git. You should be able to do: make CC="clang -U__GNUC__" CXX="clang++ -U__GNUC__". The symbols in lib/libdrew/mem.o will all be hidden. These symbols will not be hidden if you omit the -U__GNUC__. I would have sent preprocessed source, but since this looks like a bug in the preprocessor, this will have to do. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.5-trunk-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages clang depends on: ii libc6 2.13-35 ii libclang-common-dev 3.1-8 ii libffi5 3.0.10-3 ii libgcc1 1:4.7.1-9 ii libllvm3.1 3.1-2 ii libstdc++6 4.7.1-9 ii libstdc++6-4.6-dev 4.6.3-10 Versions of packages clang recommends: ii llvm-3.1-dev 3.1-2 ii python 2.7.3-2 clang suggests no packages. -- no debconf information -- brian m. carlson / brian with sandals: Houston, Texas, US +1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
signature.asc
Description: Digital signature

