Age | Commit message (Collapse) | Author |
|
|
|
|
|
the AssemblyKeyFile attribute for consistency and to make it easier to do path name manipulation on the file name. (#5316)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note: DISABLE_CAS_USE was removed in ed989a8e9e5c170b6d19edc60bb80e8a4e6d5cc0
|
|
|
|
|
|
to appease MS msbuild
|
|
cyclic assemblies
|
|
|
|
* Adds support for a handful of new command line arguments that we now use in the build.
* Always attempts to match to a project name, to get the proper project dependency.
* Update to support .exe and .dll in the generation.
* Remove warnings and some dead code
* Update the resulting csproj files based on running:
make update-csproj
make package-inputs
mono genproj.exe
|
|
|
|
Remove ChangeLog files from the repo
|
|
scope index. Fixes #32315 (1st part)
|
|
They weren't updated in the last 6 years and aren't helpful anymore (e.g. by causing unrelated matches during git grep searches).
|
|
We only use the net_4_x profile now so those csproj's don't make sense anymore.
|
|
|
|
Discovered by coverity in NRefactory.
|
|
|
|
reduce duplication.
|
|
variable which lists the assemblies a given assembly depends on to build.
|
|
|
|
scope index reference. Fixes #25358
|
|
|
|
|
|
|
|
Most of these files weren't updated in the last >5 years and serve no purpose today, so they only clutter the repository.
|
|
|
|
|
|
Since we are invoking make recursively to satisfy the dependencies
for any of the cyclic components, we need to inform make to not try
to parallelize any work on any of the cyclic dependencies, otherwise
multiple builds will execute building the same binary, and the result
will be truncated outputs.
For example, System's Makefile would launch all the parallel builds for
the dependencies:
$(secxml_libdir)/System.dll \
$(the_libdir_base)System.Xml.dll \
$(the_libdir_base)Mono.Security.dll \
$(bare_libdir)/System.dll
They could be launched in parallel, and in turn the makefiles on those
directories might try simultaneously to invoke recursively a component
that has not been built yet.
So we use .NOTPARALLEL to flag all the cyclic dependencies on a given
directory to instruct make to not run those in parallel.
|
|
This patch introduces an infrastructure to stage the builds for the core
assemblies that have cyclic dependencies. This deals directly with
the following cycle:
System.dll requires:
System.Configuration.dll
Mono.Security.dll
System.Xml.dll
They all require System.dll to be built
System.Xml requires:
System.dll
System.Configuration.dll
System.Security.dll requires:
System.dll
Mono.Security.dll
System.Xml.dll
Principle
=========
The patch works by directing the build infrastructure to place
intermediate build steps on their own directory. For example the
first System.dll build that only takes a dependency in mscorlib.dll is
placed not under the final directory but on a subdirectory called
"bare".
The second time that System.dll is built (after Mono.Security and
System.Xml have been built) is placed on the "secxml" directory.
The third time is the final build, and that one ends in the profile
directory.
The same principle is applied to System.Xml.
Better Dependency Tracking
==========================
To handle the multiple stages, the new Makefiles for the various
parties involved in this loop are now able to build their
dependencies. This means that typing "make" on System.Security or
System.Xml or System will build all of the intermediate steps as
required, without needing the toplevel Makefile to perform multiple
build shots to incrementally build the result.
Bug fixes
=========
We must have regressed at some point the build of System.Xml as we
were only doing one build of it, one without System.Configuration
support. This patch introduces back the changes to build System.Xml
in two steps.
This patch fixes the setup where we end up rebuilding System.dll and
overwriting it two times as the build progresses as a side effect
(this is what required LIBRARY_USE_INTERMEDIATE_FILE).
Details
=======
library.make:
Introduces a new "the_libdir_base" which is the raw directory
where the final output will go. This points to the same location
that libdir_base previously pointed to.
The existing libdir_base is modified to contain an optional
"intermediate" directory, where intermediate builds can be
placed.
Other cycles
============
The System.Design assembly was listed as having cycles, but while this
cycle exists in theory, in practice we have not implemented any of the
code that brings the cycle in System.Windows.Forms.Design's
ImageListImageEditor and chances are, we wont any time soon.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
possible to build a mdb file from another one.
|
|
|
|
|
|
|
|
|
|
|
|
|