Skip to content

Commit

Permalink
Remove support for EXPORTAS in def files to maintain ABI compatibilit…
Browse files Browse the repository at this point in the history
…y for COFFShortExport
  • Loading branch information
dpaoliello committed Mar 13, 2024
1 parent e74b197 commit f9d2b88
Show file tree
Hide file tree
Showing 5 changed files with 1 addition and 206 deletions.
4 changes: 0 additions & 4 deletions llvm/include/llvm/Object/COFFImportFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,6 @@ struct COFFShortExport {
/// file, this is "baz" in "EXPORTS\nfoo = bar == baz".
std::string AliasTarget;

/// Specifies EXPORTAS name. In a .def file, this is "bar" in
/// "EXPORTS\nfoo EXPORTAS bar".
std::string ExportAs;

uint16_t Ordinal = 0;
bool Noname = false;
bool Data = false;
Expand Down
3 changes: 0 additions & 3 deletions llvm/lib/Object/COFFImportFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -675,9 +675,6 @@ Error writeImportLibrary(StringRef ImportName, StringRef Path,
std::string ExportName;
if (E.Noname) {
NameType = IMPORT_ORDINAL;
} else if (!E.ExportAs.empty()) {
NameType = IMPORT_NAME_EXPORTAS;
ExportName = E.ExportAs;
} else {
NameType = getNameType(SymbolName, E.Name, Machine, MinGW);
}
Expand Down
13 changes: 1 addition & 12 deletions llvm/lib/Object/COFFModuleDefinition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ enum Kind {
KwConstant,
KwData,
KwExports,
KwExportAs,
KwHeapsize,
KwLibrary,
KwName,
Expand Down Expand Up @@ -119,7 +118,6 @@ class Lexer {
.Case("CONSTANT", KwConstant)
.Case("DATA", KwData)
.Case("EXPORTS", KwExports)
.Case("EXPORTAS", KwExportAs)
.Case("HEAPSIZE", KwHeapsize)
.Case("LIBRARY", KwLibrary)
.Case("NAME", KwName)
Expand Down Expand Up @@ -288,16 +286,7 @@ class Parser {
E.AliasTarget = std::string("_").append(E.AliasTarget);
continue;
}
// EXPORTAS must be at the end of export definition
if (Tok.K == KwExportAs) {
read();
if (Tok.K == Eof)
return createError(
"unexpected end of file, EXPORTAS identifier expected");
E.ExportAs = std::string(Tok.Value);
} else {
unget();
}
unget();
Info.Exports.push_back(E);
return Error::success();
}
Expand Down
93 changes: 0 additions & 93 deletions llvm/test/tools/llvm-lib/arm64ec-implib.test
Original file line number Diff line number Diff line change
Expand Up @@ -100,89 +100,6 @@ Creating a new lib containing the existing lib:
RUN: llvm-lib -machine:arm64ec test.lib -out:test2.lib
RUN: llvm-nm --print-armap test2.lib | FileCheck -check-prefix=ARMAP %s


RUN: llvm-lib -machine:arm64ec -def:exportas.def -out:exportas.lib
RUN: llvm-nm --print-armap exportas.lib | FileCheck -check-prefix=EXPAS-ARMAP %s
RUN: llvm-readobj exportas.lib | FileCheck -check-prefix=EXPAS-READOBJ %s

EXPAS-ARMAP: Archive EC map
EXPAS-ARMAP-NEXT: #func1 in test.dll
EXPAS-ARMAP-NEXT: #func2 in test.dll
EXPAS-ARMAP-NEXT: #func3 in test.dll
EXPAS-ARMAP-NEXT: #func4 in test.dll
EXPAS-ARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll
EXPAS-ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll
EXPAS-ARMAP-NEXT: __imp_aux_func1 in test.dll
EXPAS-ARMAP-NEXT: __imp_aux_func2 in test.dll
EXPAS-ARMAP-NEXT: __imp_aux_func3 in test.dll
EXPAS-ARMAP-NEXT: __imp_aux_func4 in test.dll
EXPAS-ARMAP-NEXT: __imp_data1 in test.dll
EXPAS-ARMAP-NEXT: __imp_data2 in test.dll
EXPAS-ARMAP-NEXT: __imp_func1 in test.dll
EXPAS-ARMAP-NEXT: __imp_func2 in test.dll
EXPAS-ARMAP-NEXT: __imp_func3 in test.dll
EXPAS-ARMAP-NEXT: __imp_func4 in test.dll
EXPAS-ARMAP-NEXT: func1 in test.dll
EXPAS-ARMAP-NEXT: func2 in test.dll
EXPAS-ARMAP-NEXT: func3 in test.dll
EXPAS-ARMAP-NEXT: func4 in test.dll
EXPAS-ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll

EXPAS-READOBJ: File: test.dll
EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
EXPAS-READOBJ-NEXT: Type: code
EXPAS-READOBJ-NEXT: Name type: export as
EXPAS-READOBJ-NEXT: Export name: func1
EXPAS-READOBJ-NEXT: Symbol: __imp_func1
EXPAS-READOBJ-NEXT: Symbol: func1
EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func1
EXPAS-READOBJ-NEXT: Symbol: #func1
EXPAS-READOBJ-EMPTY:
EXPAS-READOBJ-NEXT: File: test.dll
EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
EXPAS-READOBJ-NEXT: Type: code
EXPAS-READOBJ-NEXT: Name type: export as
EXPAS-READOBJ-NEXT: Export name: func2
EXPAS-READOBJ-NEXT: Symbol: __imp_func2
EXPAS-READOBJ-NEXT: Symbol: func2
EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func2
EXPAS-READOBJ-NEXT: Symbol: #func2
EXPAS-READOBJ-EMPTY:
EXPAS-READOBJ-NEXT: File: test.dll
EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
EXPAS-READOBJ-NEXT: Type: code
EXPAS-READOBJ-NEXT: Name type: export as
EXPAS-READOBJ-NEXT: Export name: #func3
EXPAS-READOBJ-NEXT: Symbol: __imp_func3
EXPAS-READOBJ-NEXT: Symbol: func3
EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func3
EXPAS-READOBJ-NEXT: Symbol: #func3
EXPAS-READOBJ-EMPTY:
EXPAS-READOBJ-NEXT: File: test.dll
EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
EXPAS-READOBJ-NEXT: Type: code
EXPAS-READOBJ-NEXT: Name type: export as
EXPAS-READOBJ-NEXT: Export name: #func4
EXPAS-READOBJ-NEXT: Symbol: __imp_func4
EXPAS-READOBJ-NEXT: Symbol: func4
EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func4
EXPAS-READOBJ-NEXT: Symbol: #func4
EXPAS-READOBJ-EMPTY:
EXPAS-READOBJ-NEXT: File: test.dll
EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
EXPAS-READOBJ-NEXT: Type: data
EXPAS-READOBJ-NEXT: Name type: export as
EXPAS-READOBJ-NEXT: Export name: #data1
EXPAS-READOBJ-NEXT: Symbol: __imp_data1
EXPAS-READOBJ-EMPTY:
EXPAS-READOBJ-NEXT: File: test.dll
EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
EXPAS-READOBJ-NEXT: Type: data
EXPAS-READOBJ-NEXT: Name type: export as
EXPAS-READOBJ-NEXT: Export name: data2
EXPAS-READOBJ-NEXT: Symbol: __imp_data2


#--- test.def
LIBRARY test.dll
EXPORTS
Expand All @@ -191,13 +108,3 @@ EXPORTS
?test_cpp_func@@YAHPEAX@Z
expname=impname
dataexp DATA

#--- exportas.def
LIBRARY test.dll
EXPORTS
#func1 EXPORTAS func1
func2 EXPORTAS func2
func3 EXPORTAS #func3
#func4 EXPORTAS #func4
data1 DATA EXPORTAS #data1
#data2 DATA EXPORTAS data2
94 changes: 0 additions & 94 deletions llvm/test/tools/llvm-lib/exportas.test

This file was deleted.

0 comments on commit f9d2b88

Please sign in to comment.