Projekt

Allgemein

Profil

Fehler #530

change "binary" macro

Von Maximilian Seesslen vor 8 Monaten hinzugefügt. Vor 4 Monaten aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
Zielversion:
Beginn:
07.06.2024
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:
CS Zielversion:

Beschreibung

The macro relies that the symbols are placed in an fixed order. This may not be the case in future linker versions.
this can easily changed by using symbols in assembler.

#define CONCAT_(a, b) a##b
#define CONCAT(a, b) CONCAT_(a, b)

#define binary(path, file, variableBase) asm ( \
      "" #variableBase "Data:\n" \
      ".incbin \"" path file "\"\n" \
      "" #variableBase "End:\n" \
      ".set " #variableBase "SizePtr, . -" #variableBase "Data\n" ); \
      extern char CONCAT(variableBase, Data); \
      extern char CONCAT(variableBase, End); \
      extern char CONCAT(variableBase, SizePtr); \
      void* CONCAT(variableBase, Start) = &CONCAT(variableBase, Data); \
      address_t CONCAT(variableBase, Size)= (address_t)&CONCAT(variableBase, SizePtr);

static_assert ( sizeof ( unsigned long long ) == 8 );
static_assert ( sizeof ( void* ) == 8 );

Dateien

ld_test.tgz (37,2 KB) ld_test.tgz Maximilian Seesslen, 07.06.2024 18:48

Historie

#1

Von Maximilian Seesslen vor 8 Monaten aktualisiert

#2

Von Maximilian Seesslen vor 4 Monaten aktualisiert

  • Beschreibung aktualisiert (diff)
  • Status wurde von Neu zu Erledigt geändert
  • Zielversion wurde auf v0.2.0 gesetzt

Auch abrufbar als: Atom PDF