# linker

A linker is a tool that combines object files into an executable or dynamic library.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The Underrust: Rust's assembly output

DevFeed: [The Underrust: Rust's assembly output](<https://devfeed.tech/articles/the-underrust-rust-s-assembly-output-35480.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/underrust-rust-assembly-output/>)

Author: Graham King

Published: 2022-08-31T07:00:00Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [linker](<https://devfeed.tech/topics/linker.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [linker](<https://devfeed.tech/tags/linker.md>), [linux](<https://devfeed.tech/tags/linux.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rust](<https://devfeed.tech/tags/rust.md>), [software](<https://devfeed.tech/tags/software.md>), [underrust](<https://devfeed.tech/tags/underrust.md>)

### AI overview

This article introduces the Underrust series, which examines Rust programs through their generated assembly. It explains a repeatable setup using Rust on Linux with an Intel processor, a stripped-down program, LLVM optimizations, a custom entry point, and release builds to make assembly easier to inspect.

### Source excerpt

Assembly: In all the world of the programmer, there is no more important output.

## 10 LDFLAGS I Love

DevFeed: [10 LDFLAGS I Love](<https://devfeed.tech/articles/10-ldflags-i-love-35211.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/top-10-favorite-ldflags/>)

Published: 2016-07-18T20:00:14Z

Content type: article

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [linker](<https://devfeed.tech/topics/linker.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [binaries](<https://devfeed.tech/tags/binaries.md>), [debug](<https://devfeed.tech/tags/debug.md>), [linker](<https://devfeed.tech/tags/linker.md>), [map](<https://devfeed.tech/tags/map.md>), [symbols](<https://devfeed.tech/tags/symbols.md>)

### AI overview

A sarcastic programming article presents ten favorite LDFLAGS and briefly explains their linker behavior, including static linking, symbol export, archive inclusion, link-map generation, symbol stripping, tracing, library search restrictions, and unresolved symbols.

### Source excerpt

Hello and welcome to what will become the most sarcastic post on my blog. This is going to be a series of "buzzfeed" style programming articles and after this post I very happily pass the baton to Filippo Valsorda to continue. And I urge you to write your own as well. @jessfraz "We asked Jess for her top 10 ldflags; you won't believe what happened next" -- adg (@enneff) July 17, 2016 So here they are: -static I would be an embarassment to myself if I didn't start with the flag that tells the linker to not link against shared libraries. This is the best flag. STATIC BINARIES FTW. --export-dynamic This flag tells the linker to add all the symbols to the dynamic symbol table. This is especially important if you want to do "The Macgyver of Dlopening" and dlopen yourself. --whole-archive This is another flag that comes in handy when you want to dlopen yourself. See most linkers will only take into account the things it knows it needs. But with this flag, you tell it "YOLO, I want it all" so that later you can dlopen yourself with that symbol that was never actually used until runtime. FUN! --no-whole-archive This flag un-sets the --whole-archive flag which is nice for when you only want the whole archive of one library but not all the others you are linking to. --print-map This flag is just dope. It prints a link map to stdout. This gives you information about object files, common symbols, and the values assigned to symbols. --strip-all This flag strips all the symbol information from the artifact produced. If say you are a few KB/MB off from your binary fitting on a floppy disk, this flag is your friend. --strip-debug This flag is very similar to --strip-all except it only strips the debug symbol information. This all really depends on how much you need to shave off to fit that binary on a floppy disk. --trace This flag is great for debugging. It prints the names of the input files as ld processes them. -nostdlib This flag forces the linker to only search the libraries y

## ReactOS Newsletter 71: USB stack development and build tool fixes

DevFeed: [ReactOS Newsletter 71: USB stack development and build tool fixes](<https://devfeed.tech/articles/newsletter-71-32937.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/newsletter-71/>)

Published: 2010-04-23T00:00:00Z

Content type: news

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [USB](<https://devfeed.tech/topics/usb.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [linker](<https://devfeed.tech/topics/linker.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Xen](<https://devfeed.tech/topics/xen.md>)

Tags: [build-tools](<https://devfeed.tech/tags/build-tools.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [free](<https://devfeed.tech/tags/free.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [linker](<https://devfeed.tech/tags/linker.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [usb](<https://devfeed.tech/tags/usb.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

This ReactOS newsletter reports work on lower-level USB stack components, including a basic usbehci driver tested in Windows XP, and describes GCC, linker, library, and binutils fixes needed for interoperability with Microsoft's C/C++ compiler.

### Source excerpt

NT USB Stack Pre-Vista, the USB architecture started with a very low level usbport driver. This driver was the one that created device objects for each USB controller and received I/O Request Packets (IRP). Depending on which USB standard the controllers were for, usbport would call into one of three helper drivers, usbehci, usbohci, and usbuhci. The one actually sending those IRPs was usbhub, and these components constitute the lower levels of the USB stack.