Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8464799
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T14:51:40+00:00 2026-06-10T14:51:40+00:00

I always use the file command to check the file type, mostly after I

  • 0

I always use the file command to check the file type, mostly after I compile a new project to make sure everything is fine.

The output is something similar to this below:

proj_out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=0x23d9f966854e09d721c6110d505247483dae02fe, stripped

My question is since my Linux Kernel is updated to 3.0+, why does it still shows it is compiled for older versions of Linux?

for GNU/Linux 2.6.24

Is it anything related to file command or do I have to do anything to compile my project against newer Linux Kernel?

Thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T14:51:41+00:00Added an answer on June 10, 2026 at 2:51 pm

    The kernel version displayed by file on an executable has nothing to do with the kernel installed on your system. It matches the C library the program was linked with at build time.

    Your C compiler targets a specific C library (usually glibc). In turn, the C library targets a kernel API (i.e. the C library is built for a specific kernel). That is the version displayed by file.

    You don’t have to worry about the mimatch between the kernel version displayed by file and the kernel version installed on your machine.

    @REALFREE: you can try the following experiment. Maybe it will
    help you get a grasp of what’s going on:

    $ uname -r
    3.10-2-amd64
    $ gcc -Wall -Werror hello.c -o hello
    $ readelf --notes ./hello
    Displaying notes found at file offset 0x0000021c with length 0x00000020:
      Owner                 Data size       Description
      GNU                  0x00000010       NT_GNU_ABI_TAG (ABI version tag)
        OS: Linux, ABI: 2.6.32
    

    The information about the ABI tag is contained in an elf
    segment called NOTE. This information is written by the linker
    when the program is compiled. It matches the ABI tag of the C library.

    $ ldd ./hello
            linux-vdso.so.1 (0x00007fffd31fe000)
            libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5f1a465000)
            /lib64/ld-linux-x86-64.so.2 (0x00007f5f1a827000)
    $ readelf --notes /lib/x86_64-linux-gnu/libc.so.6
    Displaying notes found at file offset 0x00000294 with length 0x00000020:
      Propriétaire        Taille des données        Description
      GNU                  0x00000010       NT_GNU_ABI_TAG (étiquette de version ABI)
        OS: Linux, ABI: 2.6.32
    

    In order to build the C library, you have to select a kernel
    version. Here, the C library was compiled for a 2.6.32 kernel but
    it also works with more recent kernels. However, if the program
    is run on a kernel older than 2.6.32, a kernel too old warning
    is displayed.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I try to create a new self certified keystore file The command I use
I started to use Lex for my homework. In my Lex file, I always
I always use preg_match and it always works fine, but today I was trying
I exported a build.xml file from an Eclipse/Android project (under Windows). Then I use
I want to tell make that it shall always use -j4 option even if
I use the following batch command to copy a file @COPY /Y app_offline_template.htm app_offline.htm
Everytime I use sdist to creat the MANIFEST file with the command: 'python setup.py
I always use If statement (In C#) as (1. Alternative); if (IsSuccessed == true)
Pep8 advises to always use cls as the first argument of a class method
Should timestamps always use UTC (as in 2012-06-14T10:32:11+00:00 ) and not local time (as

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.