Why are some libc symbols WEAK and others GLOBAL?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












Why are different symbols in libc declared with different visibility levels,



1510 0x0003d200 0xf7d55200 WEAK FUNC 55 system
454 0x00067b40 0xf7d7fb40 WEAK FUNC 474 puts
147 0x000303d0 0xf7d483d0 GLOBAL FUNC 33 exit


From readelf -s /lib/i386-linux-gnu/libc-2.27.so,



 147: 000303d0 33 FUNC GLOBAL DEFAULT 13 exit@@GLIBC_2.0
454: 00067b40 474 FUNC WEAK DEFAULT 13 puts@@GLIBC_2.0
1510: 0003d200 55 FUNC WEAK DEFAULT 13 system@@GLIBC_2.0


From this question, it seems like the authors' libc has a LOCAL exit?



What the rhyme or reason behind the different libc visibility levels?









share



























    up vote
    0
    down vote

    favorite












    Why are different symbols in libc declared with different visibility levels,



    1510 0x0003d200 0xf7d55200 WEAK FUNC 55 system
    454 0x00067b40 0xf7d7fb40 WEAK FUNC 474 puts
    147 0x000303d0 0xf7d483d0 GLOBAL FUNC 33 exit


    From readelf -s /lib/i386-linux-gnu/libc-2.27.so,



     147: 000303d0 33 FUNC GLOBAL DEFAULT 13 exit@@GLIBC_2.0
    454: 00067b40 474 FUNC WEAK DEFAULT 13 puts@@GLIBC_2.0
    1510: 0003d200 55 FUNC WEAK DEFAULT 13 system@@GLIBC_2.0


    From this question, it seems like the authors' libc has a LOCAL exit?



    What the rhyme or reason behind the different libc visibility levels?









    share

























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      Why are different symbols in libc declared with different visibility levels,



      1510 0x0003d200 0xf7d55200 WEAK FUNC 55 system
      454 0x00067b40 0xf7d7fb40 WEAK FUNC 474 puts
      147 0x000303d0 0xf7d483d0 GLOBAL FUNC 33 exit


      From readelf -s /lib/i386-linux-gnu/libc-2.27.so,



       147: 000303d0 33 FUNC GLOBAL DEFAULT 13 exit@@GLIBC_2.0
      454: 00067b40 474 FUNC WEAK DEFAULT 13 puts@@GLIBC_2.0
      1510: 0003d200 55 FUNC WEAK DEFAULT 13 system@@GLIBC_2.0


      From this question, it seems like the authors' libc has a LOCAL exit?



      What the rhyme or reason behind the different libc visibility levels?









      share















      Why are different symbols in libc declared with different visibility levels,



      1510 0x0003d200 0xf7d55200 WEAK FUNC 55 system
      454 0x00067b40 0xf7d7fb40 WEAK FUNC 474 puts
      147 0x000303d0 0xf7d483d0 GLOBAL FUNC 33 exit


      From readelf -s /lib/i386-linux-gnu/libc-2.27.so,



       147: 000303d0 33 FUNC GLOBAL DEFAULT 13 exit@@GLIBC_2.0
      454: 00067b40 474 FUNC WEAK DEFAULT 13 puts@@GLIBC_2.0
      1510: 0003d200 55 FUNC WEAK DEFAULT 13 system@@GLIBC_2.0


      From this question, it seems like the authors' libc has a LOCAL exit?



      What the rhyme or reason behind the different libc visibility levels?







      ubuntu glibc elf symbol-table





      share














      share












      share



      share








      edited 1 min ago

























      asked 6 mins ago









      Evan Carroll

      4,78193875




      4,78193875

























          active

          oldest

          votes











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          convertImagesToLinks: false,
          noModals: false,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "",
          contentPolicyHtml: "",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f478795%2fwhy-are-some-libc-symbols-weak-and-others-global%23new-answer', 'question_page');

          );

          Post as a guest



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















           

          draft saved


          draft discarded















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f478795%2fwhy-are-some-libc-symbols-weak-and-others-global%23new-answer', 'question_page');

          );

          Post as a guest













































































          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?