Wednesday, March 30, 2011

Building spec benchmarks with newer libstdc++

This post is mostly for the sake of others searching with the same problem.

I was having issues building the 483.xalancbmk benchmark with a not-so-new libstdc++ (4.3.4). There's a particular source file (FormatterToHTML.cpp) that uses memset without including string.h or cstring. This was the error message:

FormatterToHTML.cpp:139: error: 'memset' was not declared in this scope

It depended on an include of 'vector' to pull in 'cstring' as a transitive dep. That seems to have changed. Since the SPEC benchmarks go so far as to checksum the benchmark sources before letting you run them, it was easier to add '#include <cstring>' to /usr/include/c++/4.3.4/vector than fix the application. =(

4 comments:

  1. Thank you. Great go around! Did you have problems with libquantum and perlbench as well? If not, could you tell what linux distribution and version did you use?

    ReplyDelete
  2. I was on a CSAIL Debian machine that I don't have access to anymore (probably squeeze? sid? I don't remember). I did some searching, and SPEC provides updates (in the form of DVDs, ugh) to the distribution that fix these kinds of portability bugs. This particular issue is on there list. (search, I don't have the link)

    ReplyDelete
  3. Shree Ram Techno Solutions Provides CCTV Camera, Security Camera, Wireless Security, Attendance System, Access Control System, DVR, NVR, Spy Camera, Fire Alarm, Security Alarm, PCI, IP Network Camera, Dome Camera, IR Camera, CCTV, Camera Price, HIKVISION, SCATI, Time Machine

    CTV CAmera in jaipur at Rajasthan
    Home security system in jaipur
    wireless Home Srecuriuty pSystem in jai
    Realtime attendance machine in jaipur
    cctv camera dealer in jaipur
    Hikvision DVR in jaipur at Rajasthan
    security system solutions in jaipur

    ReplyDelete