libc {
  GLIBC_2.0 {
    # Exception handling support functions from libgcc
    __register_frame; __register_frame_table; __deregister_frame;
    __frame_state_for; __register_frame_info_table;
  }
  GLIBC_2.1 {
    __chown;
  }
  GLIBC_2.2 {
    # functions used in other libraries
    __xstat64; __fxstat64; __lxstat64;

    # a*
    alphasort64;

    # New rlimit interface
    getrlimit; setrlimit; getrlimit64;

    # r*
    readdir64; readdir64_r;

    # s*
    scandir64;

    # v*
    versionsort64;
  }
  GLIBC_2.3.3 {
    posix_fadvise64; posix_fallocate64;
  }
  GLIBC_2.9 {
    getutent;
    getutid;
    getutline;
    pututline;
    updwtmp;
    getutent_r;
    getutid_r;
    getutline_r;
    getutxent;
    getutxid;
    getutxline;
    pututxline;
    updwtmpx;
    getutmp;
    getutmpx;
  }
  GLIBC_2.11 {
    fallocate64;
  }
}

libutil {
  GLIBC_2.9 {
    login;
  }
}
