Comments (3)
Note that GNU as on AIX is AIX XCOFF syntax. GNU as on AIX does not accept ELF-like syntax as input and translate it to XCOFF format on output.
AIX now supports DWARF debugging. The internals of the DWARF sections are standard DWARF. The names of the sections and DWARF section headers are slightly different. AIX assembler mostly accepts GCC-generated DWARF unchanged.
The rhythm for AIX assembler is a little different, especially the syntax introducing a function. There are pseudo-ops with identical purpose but different name.
The main difference is addressing. AIX XCOFF and Linux ELF are very similar in the concept of position independent addressing, but ELF was designed to delegate the creation of the address table to the linker (Global Offset Table aka GOT), while XCOFF was designed for the compiler to create and manage the address table (Table of Contents aka TOC). It's the same purpose and similar behavior, but requires a little more verbiage in the assembler files.
AIX only supports the traditional COFF sections (text, data, bss) and a few others. For finer granularity, it uses a concept called CSECT
.csect .my_named_text_section[PR]
.csect .my_named_data_section[RW]
The "[PR]" and "[RW]" are what XCOFF calls mapping classes. This is a decoration after the CSECT name that instructs the linker how to map the CSECTs to COFF sections. PR for PRogram maps to text. RW for Read/Write maps to data. RO for Read Only maps to text.
One needs a code address (with the dot) and function descriptor (without the dot) for functions.
GCC assembly language output for AIX is a good example to follow.
from binarydist.
Looks like we need to figure out what's with section headers - does AIX not support subsections? This should be fine on ELF systems, but of course, AIX ain't ELF.
Some other stuff like that might need tweaking...
from binarydist.
It turns out the answer for GNU vs. IBM as is "don't even bother with GNU as on AIX" in gentler terms. This will require a lot of refactoring....
from binarydist.
Related Issues (20)
- mkbundle is broken
- AIX takes a long time to start child processes HOT 1
- MemoryMappedFile segfaults
- RuntimeInformation could be better HOT 2
- Mono objects take a while to build
- PPC32 support HOT 3
- Some System.Decimal operations deliver garbage HOT 1
- TimeZoneInfo doesn't work HOT 3
- Fix network interface enumeration on Mono HOT 6
- Take advantage of Mono crash reporting HOT 1
- Database access samples on IBMi - ADO.Net HOT 24
- Dependent module libmonosgen-2.0.a could not be loaded HOT 11
- Benchmark Mono against J9 and other runtimes
- Mono profiler is broken HOT 1
- svr4 style sonames HOT 17
- investigate deadlocks in System and corlib tests
- File.Exists causes app to fail when file not found and used in a Class. HOT 1
- managed rijndael is broken in big endian HOT 1
- DateTime.Now started failing at 1am on Daylight Savings Time 3/10/2019 HOT 4
- Spreadsheetlight causes error with System.IO.Packaging HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from binarydist.