summaryrefslogtreecommitdiff
path: root/compiler/export.pas
Commit message (Collapse)AuthorAgeFilesLines
* * removed unused unitsflorian2017-05-091-1/+1
| | | | git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@36165 3ad0048d-3df7-0310-abae-a5850022a9f2
* New export option that enforces the use of the provided export name instead ↵svenbarth2016-04-291-1/+2
| | | | | | | | | | | | | of using the name of the provided symbol. This is necessary to correctly handle overloaded functions, especially if one of them is an internproc one. export.pas: + texportoption: new option eo_no_sym_name pkgutil.pas: * exportprocsym: set eo_no_sym_name when exporting procdefs from a package systems/t_win.pas, TExportLibWin: * generatelib: respect eo_no_sym_name git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@33574 3ad0048d-3df7-0310-abae-a5850022a9f2
* Merged revision(s) 28792 from branches/svenbarth/packages:svenbarth2016-01-221-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | Provide a possibility to ignore duplicate symbols for exporting. export.pas, texportlib: + new property "ignoreduplicates" with which duplicate symbols are ignored upon insertion + new method "duplicatesymbol" which checks "ignoreduplicates" and generates an error if it is False (this method needs to be used if a duplicate was detected) expunix.pas, texportlibunix: * exportprocedure: use "duplicatesymbol" instead of always generating an error systems/t_beos.pas, texportlibbeos: * exportprocedure: use "duplicatesymbol" instead of always generating an error systems/t_haiku.pas, texportlibhaiku: * exportprocedure: use "duplicatesymbol" instead of always generating an error systems/t_nwl.pas, texportlibnetwlibc: * exportprocedure: use "duplicatesymbol" instead of always generating an error systems/t_nwm.pas, texportlibnetware: * exportprocedure: use "duplicatesymbol" instead of always generating an error systems/t_win.pas, texportlibwin: * exportfromlist: use "duplicatesymbol" instead of always generating an error ........ git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@32974 3ad0048d-3df7-0310-abae-a5850022a9f2
* Merged revision(s) 28691, 31914 from branches/svenbarth/packages:svenbarth2016-01-151-19/+21
| | | | | | Convert export options from constants to a set and accordingly adjust all usage locations git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@32945 3ad0048d-3df7-0310-abae-a5850022a9f2
* + support for exporting Objective-C classes from dynamic libraries. It worksjonas2009-09-271-0/+9
| | | | | | | | | the same as for exporting functions/procedures and variables: add the name of the class to the "exports" section of the library. By default, classes are only visible inside a shared library. git-svn-id: http://svn.freepascal.org/svn/fpc/branches/objc@13765 3ad0048d-3df7-0310-abae-a5850022a9f2
* * factored unix exports handling from t_bsd and t_linux into expunix unitjonas2008-03-241-2/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (todo: at least solaris, maybe others) * changed the "exports" section handling: a) make everything private which is not exported (implemented for darwin and linux) b) for the exported symbols: - functions/procedures 1) if no name or index is provided, and if the procedure has aliases defined via the public/export directives, then export the default mangled name and all defined aliases 2) otherwise if no name is specified (but there is an index) then i) if the procedure is defined as cdecl/cppdecl/mwpascal, use the appropriately mangled version of the function name ii) otherwise export the name without any mangling(e.g. "exports proc1" -> proc1 is the exported name) - variables 1) if no name is provided and the variable was specified as cvar, use the mangled name 2) otherwise if no name is provided, export the name without any mangling -> initialization/finalization of shared libraries under Linux works again (mantis #7838) -> sharing symbols between shared library and main program works under Linux (mantis #9089) git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@10551 3ad0048d-3df7-0310-abae-a5850022a9f2
* * Remove dos,strings units, use SysUtils insteadpeter2006-10-301-1/+1
| | | | | | | | * replace split* functions with Extract* functions * Add Directory caching git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@5102 3ad0048d-3df7-0310-abae-a5850022a9f2
* * change edatalabel to string references. The edatalabel is not available ↵peter2006-06-221-2/+0
| | | | | | anymore after a unit is compiled git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@3920 3ad0048d-3df7-0310-abae-a5850022a9f2
* * log and id tags removedfpc2005-05-211-7/+0
| | | | git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@42 3ad0048d-3df7-0310-abae-a5850022a9f2
* initial importfpc2005-05-161-0/+186
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@1 3ad0048d-3df7-0310-abae-a5850022a9f2