Search Results

Search found 2220 results on 89 pages for 'gcc'.

Page 17/89 | < Previous Page | 13 14 15 16 17 18 19 20 21 22 23 24  | Next Page >

  • How can I link to a specific glibc version

    - by falstaff
    When I compile something on my Ubuntu Lucid 10.04 PC it gets linked against glibc. Lucid uses 2.11 of glibc. When I run this binary on another PC with an older glibc, the command fails saying there's no glibc 2.11... As far as I know glibc uses symbol versioning. Can I force gcc to link against a specific symbol version? In my concret use I try to compile a gcc cross toolchain for ARM.

    Read the article

  • What alternatives to __attribute__ exist on 64-bit kernels?

    - by Saifi Khan
    Hi: Is there any alternative to non-ISO gcc specific extension __attribute__ on 64-bit kernels ? Three types that i've noticed are: function attributes, type attributes and variable attributes. eg. i'd like to avoid using __attribute__((__packed__)) for structures passed over the network, even though some gcc based code do use it. Any suggestions or pointers on how to entirely avoid __attribute__ usage in C systems/kernel code ? thanks Saifi.

    Read the article

  • upgrading boost version

    - by idimba
    I'm using RHEL 5.3, shipped with gcc 4.1.2 and boost 1.33. So, there's no boost::unorded_map, no make_shared() factory function to create boost::shared_ptr and other features available in newer releases of boost. Is there're a newer version of boost compatible with the version of gcc? If yes, how the upgrade is performed?

    Read the article

  • How to remove strings from a compiled binary (.so)

    - by Stéphane
    How do I remove strings from / obfuscate a compiled binary? The goal is to avoid having people read the names of the functions/methods inside. It is a dynamic library (.so) compiled from C++ code for Android with the NDK tools (includes GCC) I compile with -O3 and already use arm-eabi-gcc -g mylib.so to remove debugging symbols, but when I do strings mylib.so all the names of the functions/methods are still readable.

    Read the article

  • c++: see compiled object layout

    - by horsthahn
    Hi, is there a way - much like the way i can see the result of preprocessing when using 'gcc -E' - to see what my objects look like once the compiler compiled them into object files? I am not too good in reading assembler, so an advice to get the results as text would be nice .. or at least a little 'howto read the constructor intructions' or 'howto find the constructor' ... I am talking about gcc/g++, but a solution including msvc would be fine. Thanks!

    Read the article

  • No rule to make target libmysql.c', needed bylibmysql.lo'. Stop

    - by user1711008
    I install mysql5.1.53, run #./configure is well, but run #make have this error. My system is centos5.8, gcc version 4.1.2 20080704 (Red Hat 4.1.2-52) make[2]: Leaving directory /root/soft/mysql-5.1.53/libmysql' make[1]: Leaving directory/root/soft/mysql-5.1.53/libmysql' Making all in libmysql_r make[1]: Entering directory /root/soft/mysql-5.1.53/libmysql_r' make all-am make[2]: Entering directory/root/soft/mysql-5.1.53/libmysql_r' make[2]: * No rule to make target libmysql.c', needed bylibmysql.lo'. Stop. make[2]: Leaving directory /root/soft/mysql-5.1.53/libmysql_r' make[1]: *** [all] Error 2 make[1]: Leaving directory/root/soft/mysql-5.1.53/libmysql_r' make: * [all-recursive] Error 1

    Read the article

  • Compiling Apache 2.2.11 on AIX 6.1, .so files not genereated

    - by user176514
    I am compiling Apache 2 (2.2.11 yeh, Its old...but its a requirement) on AIX 6.1 with GCC 4.2.0. I am using the configure options: ./configure \ --enable-module=rewrite\ --enable-module=log_referer\ --with-included-apr \ --enable-proxy \ --enable-ssl=shared \ --with-ssl=/usr \ --prefix=/PATH/apache \ --enable-so \ --enable-mods-shared="proxy proxy_http proxy_connect headers mod_proxy mod_ssl" The configure, followed by the make/make install processes all run without error of any kind. However, when I look int he modules directory for the /PATH/modules directory there are no .so files created. Sadly because of the nature of what I am doing, and the business I am in, I am locked into the software versions as described.

    Read the article

  • cmake, gcc, cuda and -m32 wtf

    - by Nils
    Hi all I figured out that CUDA does not work in 64bit mode on my mac (or couldn't get it running so far). Therefore I decided to compile everything for 32bit. I use cmake 2.8 and added the following options add_definitions(-Wall -m32) set(CUDA_64_BIT_DEVICE_CODE OFF) set(CMAKE_MODULE_LINKER_FLAGS -m32) However when it tries to link it it does something like this: /usr/bin/c++ -mmacosx-version-min=10.6 -Wl,-search_paths_first -headerpad_max_install_names CMakeFiles/SimpleTestsCUDA.dir/BlockMatrix.cpp.o CMakeFiles/SimpleTestsCUDA.dir/Matrix.cpp.o ./SimpleTestsCUDA_generated_SimpleTests.cu.o ./SimpleTestsCUDA_generated_BlockMatrix.cu.o -o SimpleTestsCUDA /usr/local/cuda/lib/libcudart.dylib /usr/local/cuda/lib/libcuda.dylib Which fails with a lot of "file is not of required architecture" warnings from ld. Now if I add manually -m32 to the command above it works. However I have no idea how to teach cmake to add -m32 to every gcc (or ld) invocation. So far it does it for nvcc and gcc, but not for linking..

    Read the article

  • Trouble using SFML with GCC and OS X

    - by user1322654
    I've been trying to get SFML working for a while now and I've been trying to get it working using GCC. I'm on OS X by the way. I followed the standard Linux instructions and using the Linux 64-bit download however when it comes to compiling... g++ -o testing main.cpp -lsfml-system This happens: main.cpp: In function ‘int main()’: main.cpp:7: error: ‘class sf::Clock’ has no member named ‘GetElapsedTime’ main.cpp:9: error: ‘class sf::Clock’ has no member named ‘GetElapsedTime’ main.cpp:10: error: ‘Sleep’ is not a member of ‘sf’ So I thought it could be due to not using includes, so I changed my gcc compile command to: g++ -o testing main.cpp -I ~/SFML-1.6/include/ -lsfml-system and now I'm getting this error: ld: warning: ignoring file /usr/local/lib/libsfml-system.so, file was built for unsupported file format which is not the architecture being linked (x86_64) Undefined symbols for architecture x86_64: "sf::Clock::Clock()", referenced from: _main in ccZEiB7b.o "sf::Clock::GetElapsedTime() const", referenced from: _main in ccZEiB7b.o "sf::Sleep(float)", referenced from: _main in ccZEiB7b.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status** And I have no idea what to do to fix it.

    Read the article

  • VMware Player 4.04 on Ubuntu 12.04 will not compile

    - by stephen mew
    I installed VMware-Player-4.0.4-744019.i386.bundle onto Ubuntu 11.10. This worked fine. I then upgraded to Ubuntu 12.04 The upgrade appeared to be successful. I then tried to start VMware Player and I got a popup "VMware Kernel Module Updater" I accept the process (click Install) The updater process runs, the output of which is; Stopping VMWare Services [green tick] Virtual Machine Monitor [RED exclamation mark] Virtual Network Device [green tick] VMware Blocking Filesystem [green tick] Virtual Machine Communication Interface [green tick] VMCI Sockets Error popup; Unable to start services See log file /tmp/vmware-root/modconfig-11912.log" Looking in the log file It seems that these are the complaints. 2012-07-11T15:35:19.829Z| vthread-3| I120: Failed to find /lib/modules/preferred/build/include/linux/version.h 2012-07-11T15:35:19.829Z| vthread-3| I120: Failed version test: /lib/modules/preferred/build/include/linux/version.h 2012-07-11T15:35:49.683Z| vthread-3| I120: Failed to compile module vmnet! I tried the patch for 4.0.3 and it did not work. Can anyone point me in the right direction here ? log file; 2012-07-11T15:35:18.618Z| vthread-3| I120: Log for VMware Workstation pid=11912 version=8.0.4 build=build-744019 option=Release 2012-07-11T15:35:18.618Z| vthread-3| I120: The process is 32-bit. 2012-07-11T15:35:18.618Z| vthread-3| I120: Host codepage=UTF-8 encoding=UTF-8 2012-07-11T15:35:18.618Z| vthread-3| I120: Host is Linux 3.2.0-26-generic Ubuntu 12.04 LTS 2012-07-11T15:35:18.616Z| vthread-3| I120: Msg_Reset: 2012-07-11T15:35:18.616Z| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/usr/lib/vmware/settings": No such file or directory. 2012-07-11T15:35:18.616Z| vthread-3| I120: ---------------------------------------- 2012-07-11T15:35:18.616Z| vthread-3| I120: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values. 2012-07-11T15:35:18.617Z| vthread-3| I120: Msg_Reset: 2012-07-11T15:35:18.617Z| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/config": No such file or directory. 2012-07-11T15:35:18.617Z| vthread-3| I120: ---------------------------------------- 2012-07-11T15:35:18.617Z| vthread-3| I120: PREF Optional preferences file not found at /root/.vmware/config. Using default values. 2012-07-11T15:35:18.617Z| vthread-3| I120: Msg_Reset: 2012-07-11T15:35:18.617Z| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/preferences": No such file or directory. 2012-07-11T15:35:18.617Z| vthread-3| I120: ---------------------------------------- 2012-07-11T15:35:18.617Z| vthread-3| I120: PREF Failed to load user preferences. 2012-07-11T15:35:18.618Z| vthread-3| W110: Logging to /tmp/vmware-root/modconfig-11912.log 2012-07-11T15:35:19.054Z| vthread-3| I120: modconf query interface initialized 2012-07-11T15:35:19.056Z| vthread-3| I120: modconf library initialized 2012-07-11T15:35:19.158Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.168Z| vthread-3| I120: Validating path /lib/modules/preferred/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:19.168Z| vthread-3| I120: Failed to find /lib/modules/preferred/build/include/linux/version.h 2012-07-11T15:35:19.168Z| vthread-3| I120: Failed version test: /lib/modules/preferred/build/include/linux/version.h not found. 2012-07-11T15:35:19.168Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:19.175Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.201Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.291Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:35:19.292Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:19.296Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.326Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.417Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:35:19.480Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.489Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.498Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.507Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.517Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.566Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.575Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.584Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.593Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.602Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.606Z| vthread-3| I120: Validating path /lib/modules/preferred/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:19.606Z| vthread-3| I120: Failed to find /lib/modules/preferred/build/include/linux/version.h 2012-07-11T15:35:19.606Z| vthread-3| I120: Failed version test: /lib/modules/preferred/build/include/linux/version.h not found. 2012-07-11T15:35:19.606Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:19.611Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.635Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.741Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:35:19.787Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.796Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.805Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.814Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.824Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:19.829Z| vthread-3| I120: Validating path /lib/modules/preferred/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:19.829Z| vthread-3| I120: Failed to find /lib/modules/preferred/build/include/linux/version.h 2012-07-11T15:35:19.829Z| vthread-3| I120: Failed version test: /lib/modules/preferred/build/include/linux/version.h not found. 2012-07-11T15:35:19.829Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:19.834Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.857Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:19.945Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:35:25.503Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:25.514Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:25.523Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:25.533Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:25.542Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:26.338Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:26.338Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:26.343Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:26.368Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:26.455Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:35:26.455Z| vthread-3| I120: Building module vmmon. 2012-07-11T15:35:26.455Z| vthread-3| I120: Extracting the sources of the vmmon module. 2012-07-11T15:35:26.484Z| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmmon-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-26-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6 2012-07-11T15:35:35.469Z| vthread-3| I120: Installing module vmmon from /tmp/vmware-root/modules/vmmon.o to /lib/modules/3.2.0-26-generic/misc. 2012-07-11T15:35:35.470Z| vthread-3| I120: Registering file: /usr/lib/vmware-installer/2.0/vmware-installer --register-file vmware-vmx regular /lib/modules/3.2.0-26-generic/misc/vmmon.ko 2012-07-11T15:35:39.713Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:39.713Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:39.719Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:39.753Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:39.845Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:35:39.845Z| vthread-3| I120: Building module vmnet. 2012-07-11T15:35:39.846Z| vthread-3| I120: Extracting the sources of the vmnet module. 2012-07-11T15:35:39.913Z| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmnet-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-26-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6 2012-07-11T15:35:49.683Z| vthread-3| I120: Failed to compile module vmnet! 2012-07-11T15:35:49.704Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:35:49.705Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:35:49.729Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:49.874Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:35:49.961Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:35:49.961Z| vthread-3| I120: Building module vmblock. 2012-07-11T15:35:49.961Z| vthread-3| I120: Extracting the sources of the vmblock module. 2012-07-11T15:35:50.159Z| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmblock-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-26-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6 2012-07-11T15:35:59.283Z| vthread-3| I120: Installing module vmblock from /tmp/vmware-root/modules/vmblock.o to /lib/modules/3.2.0-26-generic/misc. 2012-07-11T15:35:59.284Z| vthread-3| I120: Registering file: /usr/lib/vmware-installer/2.0/vmware-installer --register-file vmware-vmx regular /lib/modules/3.2.0-26-generic/misc/vmblock.ko 2012-07-11T15:36:04.318Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:36:04.319Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:36:04.324Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:36:04.344Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:36:04.427Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:36:04.427Z| vthread-3| I120: Building module vmci. 2012-07-11T15:36:04.428Z| vthread-3| I120: Extracting the sources of the vmci module. 2012-07-11T15:36:04.456Z| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmci-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-26-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6 2012-07-11T15:36:15.728Z| vthread-3| I120: Installing module vmci from /tmp/vmware-root/modules/vmci.o to /lib/modules/3.2.0-26-generic/misc. 2012-07-11T15:36:15.730Z| vthread-3| I120: Registering file: /usr/lib/vmware-installer/2.0/vmware-installer --register-file vmware-vmx regular /lib/modules/3.2.0-26-generic/misc/vmci.ko 2012-07-11T15:36:20.349Z| vthread-3| I120: Trying to find a suitable PBM set for kernel 3.2.0-26-generic. 2012-07-11T15:36:20.350Z| vthread-3| I120: Validating path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic 2012-07-11T15:36:20.355Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:36:20.378Z| vthread-3| I120: Your GCC version: 4.6 2012-07-11T15:36:20.464Z| vthread-3| I120: Header path /lib/modules/3.2.0-26-generic/build/include for kernel release 3.2.0-26-generic is valid. 2012-07-11T15:36:20.464Z| vthread-3| I120: Building module vmci. 2012-07-11T15:36:20.464Z| vthread-3| I120: Extracting the sources of the vmci module. 2012-07-11T15:36:20.514Z| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmci-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-26-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6 2012-07-11T15:36:22.732Z| vthread-3| I120: Building module vsock. 2012-07-11T15:36:22.732Z| vthread-3| I120: Extracting the sources of the vsock module. 2012-07-11T15:36:22.783Z| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vsock-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-26-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6 2012-07-11T15:36:33.825Z| vthread-3| I120: Installing module vsock from /tmp/vmware-root/modules/vsock.o to /lib/modules/3.2.0-26-generic/misc. 2012-07-11T15:36:33.826Z| vthread-3| I120: Registering file: /usr/lib/vmware-installer/2.0/vmware-installer --register-file vmware-vmx regular /lib/modules/3.2.0-26-generic/misc/vsock.ko

    Read the article

  • Generating %pc relative address of constant data

    - by Hudson
    Is there a way to have gcc generate %pc relative addresses of constants? Even when the string appears in the text segment, arm-elf-gcc will generate a constant pointer to the data, load the address of the pointer via a %pc relative address and then dereference it. For a variety of reasons, I need to skip the middle step. As an example, this simple function: const char * filename(void) { static const char _filename[] __attribute__((section(".text"))) = "logfile"; return _filename; } generates (when compiled with arm-elf-gcc-4.3.2 -nostdlib -c -O3 -W -Wall logfile.c): 00000000 <filename>: 0: e59f0000 ldr r0, [pc, #0] ; 8 <filename+0x8> 4: e12fff1e bx lr 8: 0000000c .word 0x0000000c 0000000c <_filename.1175>: c: 66676f6c .word 0x66676f6c 10: 00656c69 .word 0x00656c69 I would have expected it to generate something more like: filename: add r0, pc, #0 bx lr _filename.1175: .ascii "logfile\000" The code in question needs to be partially position independent since it will be relocated in memory at load time, but also integrate with code that was not compiled -fPIC, so there is no global offset table. My current work around is to call a non-inline function (which will be done via a %pc relative address) to find the offset from the compiled location in a technique similar to how -fPIC code works: static intptr_t __attribute__((noinline)) find_offset( void ) { uintptr_t pc; asm __volatile__ ( "mov %0, %%pc" : "=&r"(pc) ); return pc - 8 - (uintptr_t) find_offset; } But this technique requires that all data references be fixed up manually, so the filename() function in the above example would become: const char * filename(void) { static const char _filename[] __attribute__((section(".text"))) = "logfile"; return _filename + find_offset(); }

    Read the article

  • Removing padding from structure in kernel module

    - by dexkid
    I am compiling a kernel module, containing a structure of size 34, using the standard command. make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules The sizeof(some_structure) is coming as 36 instead of 34 i.e. the compiler is padding the structure. How do I remove this padding? Running make V=1 shows the gcc compiler options passed as make -I../inc -C /lib/modules/2.6.29.4-167.fc11.i686.PAE/build M=/home/vishal/20100426_eth_vishal/organised_eth/src modules make[1]: Entering directory `/usr/src/kernels/2.6.29.4-167.fc11.i686.PAE' test -e include/linux/autoconf.h -a -e include/config/auto.conf || ( \ echo; \ echo " ERROR: Kernel configuration is invalid."; \ echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \ echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ echo; \ /bin/false) mkdir -p /home/vishal/20100426_eth_vishal/organised_eth/src/.tmp_versions ; rm -f /home/vishal/20100426_eth_vishal/organised_eth/src/.tmp_versions/* make -f scripts/Makefile.build obj=/home/vishal/20100426_eth_vishal/organised_eth/src gcc -Wp,-MD,/home/vishal/20100426_eth_vishal/organised_eth/src/.eth_main.o.d -nostdinc -isystem /usr/lib/gcc/i586-redhat-linux/4.4.0/include -Iinclude -I/usr/src/kernels/2.6.29.4-167.fc11.i686.PAE/arch/x86/include -include include/linux/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Os -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i686 -mtune=generic -Wa,-mtune=generic32 -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Iarch/x86/include/asm/mach-generic -Iarch/x86/include/asm/mach-default -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -pg -Wdeclaration-after-statement -Wno-pointer-sign -fwrapv -fno-dwarf2-cfi-asm -DTX_DESCRIPTOR_IN_SYSTEM_MEMORY -DRX_DESCRIPTOR_IN_SYSTEM_MEMORY -DTX_BUFFER_IN_SYSTEM_MEMORY -DRX_BUFFER_IN_SYSTEM_MEMORY -DALTERNATE_DESCRIPTORS -DEXT_8_BYTE_DESCRIPTOR -O0 -Wall -DT_ETH_1588_051 -DALTERNATE_DESCRIPTORS -DEXT_8_BYTE_DESCRIPTOR -DNETHERNET_INTERRUPTS -DETH_IEEE1588_TESTS -DSNAPTYPSEL_TMSTRENA_TEVENTENA_TESTS -DT_ETH_1588_140_147 -DLOW_DEBUG_PRINTS -DMEDIUM_DEBUG_PRINTS -DHIGH_DEBUG_PRINTS -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(eth_main)" -D"KBUILD_MODNAME=KBUILD_STR(conxt_eth)" -c -o /home/vishal/20100426_eth_vishal/organised_eth/src/eth_main.o /home/vishal/20100426_eth_vishal/organised_eth/src/eth_main.c

    Read the article

  • is it possible to turn off vdso on glibc side?

    - by heroxbd
    I am aware that passing vdso=0 to kernel can turn this feature off, and that the dynamic linker in glibc can automatic detect and use vdso feature from kernel. Here I met with this problem. There is a RHEL 5.6 box (kernel 2.6.18-238.el5) in my institution where I only have a normal user access, probably suffering from RHEL bug 673616. As I compile a toolchain of linux-headers-3.9/gcc-4.7.2/glibc-2.17/binutils-2.23 on top of it, gcc bootstrap fails in cc1 in stage2 cannnot be run Program received signal SIGSEGV, Segmentation fault. 0x00002aaaaaaca6eb in ?? () (gdb) info sharedlibrary From To Syms Read Shared Object Library 0x00002aaaaaaabba0 0x00002aaaaaac3249 Yes (*) /home/benda/gnto/lib64/ld-linux-x86-64.so.2 0x00002aaaaacd29b0 0x00002aaaaace2480 Yes (*) /home/benda/gnto/usr/lib/libmpc.so.3 0x00002aaaaaef2cd0 0x00002aaaaaf36c08 Yes (*) /home/benda/gnto/usr/lib/libmpfr.so.4 0x00002aaaab14f280 0x00002aaaab19b658 Yes (*) /home/benda/gnto/usr/lib/libgmp.so.10 0x00002aaaab3b3060 0x00002aaaab3b3b50 Yes (*) /home/benda/gnto/lib/libdl.so.2 0x00002aaaab5b87b0 0x00002aaaab5c4bb0 Yes (*) /home/benda/gnto/usr/lib/libz.so.1 0x00002aaaab7d0e70 0x00002aaaab80f62c Yes (*) /home/benda/gnto/lib/libm.so.6 0x00002aaaaba70d40 0x00002aaaabb81aec Yes (*) /home/benda/gnto/lib/libc.so.6 (*): Shared library is missing debugging information. and a simple program #include <sys/time.h> #include <stdio.h> int main () { struct timeval tim; gettimeofday(&tim, NULL); return 0; } get segment fault in the same way if compiled against glibc-2.17 and xgcc from stage1. Both cc1 and the test program can be run on another running RHEL 5.5 (kernel 2.6.18-194.26.1.el5) with gcc-4.7.2/glibc-2.17/binutils-2.23 as normal user. I cannot simply upgrade the box to a newer RHEL version, nor could I turn VDSO off via sysctl or proc. The question is, is there a way to compile glibc so that it turns off VDSO unconditionally?

    Read the article

  • help understanding differences between #define, const and enum in C and C++ on assembly level.

    - by martin
    recently, i am looking into assembly codes for #define, const and enum: C codes(#define): 3 #define pi 3 4 int main(void) 5 { 6 int a,r=1; 7 a=2*pi*r; 8 return 0; 9 } assembly codes(for line 6 and 7 in c codes) generated by GCC: 6 mov $0x1, -0x4(%ebp) 7 mov -0x4(%ebp), %edx 7 mov %edx, %eax 7 add %eax, %eax 7 add %edx, %eax 7 add %eax, %eax 7 mov %eax, -0x8(%ebp) C codes(enum): 2 int main(void) 3 { 4 int a,r=1; 5 enum{pi=3}; 6 a=2*pi*r; 7 return 0; 8 } assembly codes(for line 4 and 6 in c codes) generated by GCC: 6 mov $0x1, -0x4(%ebp) 7 mov -0x4(%ebp), %edx 7 mov %edx, %eax 7 add %eax, %eax 7 add %edx, %eax 7 add %eax, %eax 7 mov %eax, -0x8(%ebp) C codes(const): 4 int main(void) 5 { 6 int a,r=1; 7 const int pi=3; 8 a=2*pi*r; 9 return 0; 10 } assembly codes(for line 7 and 8 in c codes) generated by GCC: 6 movl $0x3, -0x8(%ebp) 7 movl $0x3, -0x4(%ebp) 8 mov -0x4(%ebp), %eax 8 add %eax, %eax 8 imul -0x8(%ebp), %eax 8 mov %eax, 0xc(%ebp) i found that use #define and enum, the assembly codes are the same. The compiler use 3 add instructions to perform multiplication. However, when use const, imul instruction is used. Anyone knows the reason behind that?

    Read the article

  • C++ std::stringstream seemingly causes thread to hang or die under SunOS

    - by stretch
    I have an application developed under Linux with GCC 4.2 which makes quite heacy use of stringstreams to wrap and unwrap data being sent over the wire. (Because the Grid API I'm using demands it). Under Linux everything is fine but when I deploy to SunOS (v5.10 running SPARC) and compile with GCC 3.4.6 the app hangs when it reaches the point at which stringstreams are used. In more detail: The main thread accepts requests from clients and starts a new pthread to handle each request. The child thread uses stringstreams to pack data. When the child thread gets to that point it seems to hang for a second and then die. The main thread is unaffected. Are there any known issues with stringstream and GCC 3.4.6 or SunOS or SPARCs? I didn't find anything yet... Can anyone suggest a better way to pack and unpack large amounts of data a strings or byte streams? Apologies for not posting code but this to me seems more involved than a simple syntax error. All the same, the thread crashes: std::stringstream mystringstream; //not here mystringstream << "some data: "; //but here That is, I can declare the stringstream but when I try to use it something goes wrong.

    Read the article

  • C headers: compiler specific vs library specific?

    - by leonbloy
    Is there some clear-cut distinction between standard C *.h header files that are provided by the C compiler, as oppossed to those which are provided by a standard C library? Is there some list, or some standard locations? Motivation: int this answer I got a while ago, regarding a missing unistd.h in the latest TinyC compiler, the author argued that unistd.h (contrarily to sys/unistd.h) should not be provided by the compiler but by your C library. I could not make much sense of that response (for one thing shouldn't that also apply to, say, stdio.h?) but I'm still wondering about it. Is that correct? Where is some authoritative reference for this? Looking in other compilers, I see that other "self contained" POSIX C compilers that are hosted in Windows (like the GCC toolchain that comes with MinGW, in several incarnations; or Digital Mars compiler), include all header files. And in a standard Linux distribution (say, Centos 5.10) I see that the gcc package provides a few header files (eg, stdbool.h, syslimits.h) in /usr/lib/gcc/i386-redhat-linux/4.1.1/include/, and the glibc-headers package provides the majority of the headers in /usr/include/ (including stdio.h, /usr/include/unistd.h and /usr/include/sys/unistd.h). So, in neither case I see support for the above claim.

    Read the article

  • How to improve Visual C++ compilation times?

    - by dtrosset
    I am compiling 2 C++ projects in a buildbot, on each commit. Both are around 1000 files, one is 100 kloc, the other 170 kloc. Compilation times are very different from gcc (4.4) to Visual C++ (2008). Visual C++ compilations for one project take in the 20 minutes. They cannot take advantage of the multiple cores because a project depend on the other. In the end, a full compilation of both projects in Debug and Release, in 32 and 64 bits takes more than 2 1/2 hours. gcc compilations for one project take in the 4 minutes. It can be parallelized on the 4 cores and takes around 1 min 10 secs. All 8 builds for 4 versions (Debug/Release, 32/64 bits) of the 2 projects are compiled in less than 10 minutes. What is happening with Visual C++ compilation times? They are basically 5 times slower. What is the average time that can be expected to compile a C++ kloc? Mine are 7 s/kloc with vc++ and 1.4 s/kloc with gcc. Can anything be done to speed-up compilation times on Visual C++?

    Read the article

  • gcc compile error when installing Data::Alias package from CPAN (Strawberry Perl)

    - by JoelFan
    I'm trying to install the Data::Alias package from CPAN and I'm getting compile errors from gcc. I'm on Windows Server 2008: Writing Makefile for Data::Alias cp lib/Data/Alias.pm blib\lib\Data\Alias.pm C:\strawberry\perl\bin\perl.exe "-Iinc" C:\strawberry\perl\lib\ExtUtils\xsubpp -typemap C:\strawberry\perl\lib\ExtUtils\typemap Alias.xs > Alias.xsc && C:\str awberry\perl\bin\perl.exe "-Iinc" -MExtUtils::Command -e "mv" -- Alias.xsc Alias .c gcc -c -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DUSE_SITECUSTOMIZE -DPERL_IMPL ICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -DPERL_MSVC RT_READFIX -s -O2 -DVERSION=\"1.07\" -DXS_VERSION=\"1.07\" "-IC:\str awberry\perl\lib\CORE" Alias.c Alias.xs: In function 'da_localize_gvar': Alias.xs:369: error: 'Nullsv' undeclared (first use in this function) Alias.xs:369: error: (Each undeclared identifier is reported only once Alias.xs:369: error: for each function it appears in.) Alias.xs: In function 'da_refgen': Alias.xs:376: error: 'SVt_RV' undeclared (first use in this function) Alias.xs: In function 'DataAlias_pp_rv2sv': Alias.xs:690: warning: 'PL_no_symref' is deprecated (declared at C:\strawberry\p erl\lib\CORE/perl.h:4241) Alias.xs: In function 'DataAlias_pp_rv2gv': Alias.xs:747: warning: 'PL_no_symref' is deprecated (declared at C:\strawberry\p erl\lib\CORE/perl.h:4241) Alias.xs: In function 'DataAlias_pp_return': Alias.xs:1251: error: 'Nullsv' undeclared (first use in this function) Alias.xs: In function 'da_transform': Alias.xs:1436: error: 'Nullop' undeclared (first use in this function) Alias.xs:1450: error: 'OP_SETSTATE' undeclared (first use in this function) Alias.xs: In function 'da_peep2': Alias.xs:1589: error: 'OP_SETSTATE' undeclared (first use in this function) Alias.xs: In function 'da_ck_entersub': Alias.xs:1767: error: 'Nullop' undeclared (first use in this function) dmake.EXE: Error code 129, while making 'Alias.o' XMATH/Data-Alias-1.07.tar.gz C:\strawberry\c\bin\dmake.EXE -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible

    Read the article

  • Compiling libcurl for mingw32 (Windows) on mac os x 10.6

    - by Daniel
    Hello. I'm compiling libcurl for mingw32 as follows: ./configure --prefix=/Users/daniel/mingw32 "CFLAGS= -ABI=32" make make install But when compiling a program using mingw32-gcc: i386-mingw32-gcc -lcurl -o bin/remote-win.exe remote.c i get: In file included from /Users/daniel/mingw32/usr/local/include/curl/curl.h:34, from remote.c:6: /Users/daniel/mingw32/usr/local/include/curl/curlbuild.h:152:26: sys/socket.h: No such file or directory In file included from /Users/daniel/mingw32/usr/local/include/curl/curl.h:34, from remote.c:6: /Users/daniel/mingw32/usr/local/include/curl/curlbuild.h:165: error: syntax error before "curl_socklen_t" In file included from /Users/daniel/mingw32/usr/local/include/curl/curl.h:35, from remote.c:6: /Users/daniel/mingw32/usr/local/include/curl/curlrules.h:143: error: size of array `__curl_rule_01__' is negative /Users/daniel/mingw32/usr/local/include/curl/curlrules.h:153: error: size of array `__curl_rule_02__' is negative I'm pretty sure the error is because curl_socklen_t does not exist on windows. I've tried --target=--mingw32 but still no success. Please help

    Read the article

  • AVR sbi command - Error: number must be positive and less than 32

    - by Simon
    I've spent a good while getting my AVR development system set up with the full GCC tool chain (everything is the most recent current stable version) and I have solved most issues with it but one. This following code gives me an error which I just don't get. The AVR assembly manual states that the sbi instruction can accept 0-7 as a constant expression but it still errors out on me. Can anyone shed some light onto why it does this please? #ifndef __AVR_ATmega168__ #define __AVR_ATmega168__ #endif #include <avr/io.h> rjmp Init Init: ser r16 out DDRB, r16 out DDRD, r16 clr r16 out PORTB, r16 out PORTD, r16 Start: sbi PORTB, 0 rjmp Start The line in question is sbi PORTB, 0. Compiled / assembled with: avr-gcc ledon.S -mmcu=atmega168

    Read the article

  • Free static checker for C99 code

    - by detly
    I am looking for a free static checker for C99 code (including GCC extensions) with the ability to explicitly say "these preprocessor macros are always defined." I need that last part because I am compiling embedded code for a single target processor. The compiler (Microchip's C32, GCC based) sets a macro based on the selected processor, which is then used in the PIC32 header files to select a processor-specific header file to include. cppcheck therefore fails because it detects the 30 different #ifdefs used to select one of the many possible PIC32 processors, tries to analyse all possible combinations of these plus all other #defines, and fails. For example, if splint could process C99 code, I would use splint -D__PIC32_FEATURE_SET__=460 -D__32MX460F512L__ \ -D__LANGUAGE_C__ -I/path/to/my/includes source.c

    Read the article

  • crash in calloc

    - by mmd
    I'm trying to debug a program I wrote. I ran it inside gdb and I managed to catch a SIGABRT from inside calloc(). I'm completely confused about how this can arise. Can it be a bug in gcc or even libc?? More details: My program uses OpenMP. I ran it through valgrind in single-threaded mode with no errors. I also use mmap() to load a 40GB file, but I doubt that is relevant. Inside gdb, I'm running with 30 threads. Several identical runs (same input&CL) finished correctly, until the problematic one that I caught. On the surface this suggests there might be a race condition of some type. However, the SIGABRT comes from calloc() which is out of my control. Here is some relevant gdb output: (gdb) info threads [...] * 11 Thread 0x7ffff0056700 (LWP 73449) 0x00007ffff6a948a5 in raise () from /lib64/libc.so.6 [...] (gdb) thread 11 [Switching to thread 11 (Thread 0x7ffff0056700 (LWP 73449))]#0 0x00007ffff6a948a5 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x00007ffff6a948a5 in raise () from /lib64/libc.so.6 #1 0x00007ffff6a96085 in abort () from /lib64/libc.so.6 #2 0x00007ffff6ad1fe7 in __libc_message () from /lib64/libc.so.6 #3 0x00007ffff6ad7916 in malloc_printerr () from /lib64/libc.so.6 #4 0x00007ffff6adb79f in _int_malloc () from /lib64/libc.so.6 #5 0x00007ffff6adbdd6 in calloc () from /lib64/libc.so.6 #6 0x000000000040e87f in my_calloc (re=0x7fff2867ef10, st=0, options=0x632020) at gmapper/../gmapper/../common/my-alloc.h:286 #7 read_get_hit_list_per_strand (re=0x7fff2867ef10, st=0, options=0x632020) at gmapper/mapping.c:1046 #8 0x000000000041308a in read_get_hit_list (re=<value optimized out>, options=0x632010, n_options=1) at gmapper/mapping.c:1239 #9 handle_read (re=<value optimized out>, options=0x632010, n_options=1) at gmapper/mapping.c:1806 #10 0x0000000000404f35 in launch_scan_threads (.omp_data_i=<value optimized out>) at gmapper/gmapper.c:557 #11 0x00007ffff7230502 in ?? () from /usr/lib64/libgomp.so.1 #12 0x00007ffff6dfc851 in start_thread () from /lib64/libpthread.so.0 #13 0x00007ffff6b4a11d in clone () from /lib64/libc.so.6 (gdb) f 6 #6 0x000000000040e87f in my_calloc (re=0x7fff2867ef10, st=0, options=0x632020) at gmapper/../gmapper/../common/my-alloc.h:286 286 res = calloc(size, 1); (gdb) p size $2 = 814080 (gdb) The function my_calloc() is just a wrapper, but the problem is not in there, as the real calloc() call looks legit. These are the limits set in the shell: $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 2067285 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited The program is not out of memory, it's using 41GB on a machine with 256GB available: $ top -b -n 1 | grep gmapper 73437 user 20 0 41.5g 16g 15g T 0.0 6.6 55:17.24 gmapper-ls $ free -m total used free shared buffers cached Mem: 258437 195567 62869 0 82 189677 -/+ buffers/cache: 5807 252629 Swap: 0 0 0 I compiled using gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), with flags -g -O2 -DNDEBUG -mmmx -msse -msse2 -fopenmp -Wall -Wno-deprecated -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS.

    Read the article

  • sscanf + c99 not working on some platforms ?

    - by Jane
    When I compile a simple Hello World! program that uses the sscanf function on my local Debian lenny x64, it works. But when I upload the same program to the server running CentOS x86, it will not work. If I do not use sscanf, then the program works on both computers. gcc -std=c99 -O2 -pipe -m32 If I compile it with sscanf but without -std=c99, then it works on both computers. gcc -O2 -pipe -m32 What is the problem with sscanf and c99 on CentOS x86 ? I thought that compiling with the -m32 flag would work on all Linuxes ? (I have limited access to the CentOS server, so I do not have access to error messages.)

    Read the article

  • how to compile a program with gtkmozembed.h

    - by ganapati hegde
    Hi, i have written a program under ubuntu, in which i include gtkmozembed.h. I am facing a problem in compiling the program.Below is the simplest form of a program which uses gtkmozembed. #include <gtk/gtk.h> #include <stdio.h> #include <gtkmozembed.h> int main(){ GtkWidget *mozEmbed; mozEmbed = gtk_moz_embed_new(); return 0; } Eventhough, the above program is doing nothing, compiling that program is a lot for me... I am trying to comile the above program like below gcc `pkg-config --libs --cflags gtk+-2.0` test.c -o test and it is giving the following error... error: gtkmozembed.h: No such file or directory I can understand, something else has to be added to the above gcc line,so that the compiler can find the gtkmozembed.h, but not getting what is that, 'something'...Looking for someone's help..Thank you...

    Read the article

< Previous Page | 13 14 15 16 17 18 19 20 21 22 23 24  | Next Page >