Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@joncham
Copy link
Contributor

@joncham joncham commented Sep 14, 2019

  • Remove old embedded Boehm source
  • Add bdwgc submodule
  • Adjust build scripts as needed
  • Use non-deprecated Boehm APIs in mono source
  • Build boehm GC as single source file; this helps with performance
  • Boehm submodule includes changes for building static libraries in tree for testing (nodist)

@vargaz
Copy link
Contributor

vargaz commented Sep 14, 2019

RIP.

@vargaz
Copy link
Contributor

vargaz commented Sep 15, 2019

@monojenkins build failed

@vargaz
Copy link
Contributor

vargaz commented Sep 16, 2019

Some lanes fail because of:
Making test-bundle in external/bdwgc
make[1]: *** No rule to make target 'test-bundle'. Stop.

An empty rule needs to be added to libgc/Makefile.am:
test-bundle:

@joncham joncham force-pushed the upgrade-libgc-to-bdwgc branch 2 times, most recently from c441252 to b21a35f Compare November 7, 2019 21:34
@vargaz
Copy link
Contributor

vargaz commented Nov 14, 2019

@monojenkins build failed

@vargaz
Copy link
Contributor

vargaz commented Nov 14, 2019

/azp run

@azure-pipelines
Copy link

Pull request contains merge conflicts.

@joncham
Copy link
Contributor Author

joncham commented Nov 15, 2019

Shall I squash, rebase, and fix a few of the commented areas?

@joncham joncham force-pushed the upgrade-libgc-to-bdwgc branch from 75f9841 to c4ec57d Compare November 22, 2019 10:17
@joncham joncham marked this pull request as ready for review November 22, 2019 10:18
@joncham joncham changed the title Initial commit to migrate libgc to bdwgc. Replace embedded libgc with Unity fork of recent Boehm (bdwgc) Nov 22, 2019
Copy link
Member

@lateralusX lateralusX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like scripts/ci/pipeline-netcore-runtime.yml is also using run-msbuild.bat, so needs the additional argument.

@akoeplinger
Copy link
Member

akoeplinger commented Nov 22, 2019

@lateralusX looks like the build still worked: https://dev.azure.com/dnceng/public/_build/results?buildId=435839&view=logs. Probably because it explicitly passes /p:MONO_TARGET_GC=sgen.

I can fix this up if you think it's important in my other PR so we can get this finally in :)

@vargaz
Copy link
Contributor

vargaz commented Nov 22, 2019

@monojenkins build failed

@lateralusX
Copy link
Member

@akoeplinger OK lets fix that in your upcoming PR then.

@vargaz vargaz merged commit cc13723 into mono:master Nov 22, 2019
akoeplinger added a commit to akoeplinger/mono that referenced this pull request Nov 25, 2019
After mono#16832 was merged the run-msbuild.bat
script has an additional required parameter for specifying the GC.

However the script only passed the MONO_TARGET_GC property to msbuild
if the script had no additional parameters which doesn't make sense.

Always pass the parameter, this should fix the boehm build on Windows i386.
@directhex
Copy link
Contributor

Is it intended for make install in Mono to do a full install of Boehm?

[2019-11-23T11:29:35.458Z] DEBUG: BUILDSTDERR: error: Installed (but unpackaged) file(s) found:
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/cord.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/cord_pos.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/ec.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_allocator.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_backptr.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_config_macros.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_disclaim.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_gcj.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_inline.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_mark.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_pthread_redirects.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_tiny_fl.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_typed.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/gc_version.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/javaxfc.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/leak_detector.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/include/gc/weakpointer.h
06:29:35  DEBUG: BUILDSTDERR:    /usr/lib64/pkgconfig/bdw-gc.pc
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/AUTHORS
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.DGUX386
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.Mac
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.OS2
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.amiga
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.arm.cross
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.autoconf
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.cmake
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.cords
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.darwin
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.environment
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.ews4800
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.hp
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.linux
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.macros
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.rs6000
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.sgi
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.solaris2
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.symbian
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.uts
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.win32
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/README.win64
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/debugging.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/finalization.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/gcdescr.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/gcinterface.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/leak.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/overview.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/porting.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/scale.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/simple_example.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/doc/gc/tree.md
06:29:35  DEBUG: BUILDSTDERR:    /usr/share/man/man3/gc.3.gz

@lateralusX
Copy link
Member

that doesn't look right, I assume we didn't do this for the old Boehm GC as part of make install, so should probably be excluded in updated version as well.

akoeplinger added a commit that referenced this pull request Nov 25, 2019
After #16832 was merged the run-msbuild.bat
script has an additional required parameter for specifying the GC.

However the script only passed the MONO_TARGET_GC property to msbuild
if the script had no additional parameters which doesn't make sense.

Always pass the parameter, this should fix the boehm build on Windows i386.
ManickaP pushed a commit to ManickaP/runtime that referenced this pull request Jan 20, 2020
…mono#16832)

* Initial commit to migrate libgc to bdwgc.

* Fix submodule url

* Don't force Boehm as runtime wrapper. Was just for testing locally.

* Build bdwgc as single object file. Helps with performance.

* Bump bdwgc submodule.

* Attempt to fix windows MSVC based build.

* Remove any references to GC_INSIDE_DLL as we manually managed threads on Windows.

* Allow building boehm on Windows amd64.

* Allow building boehm with msvc.

* Bump bdwgc to fix line endings

* Use LF for sh, am, m4, and ac files in bdwgc

* Bump bdwgc & libatomic_ops with fix for cygwin

* Bump bdwgc to fix mono-boehm being generated as libtool wrapper script.

* Link the static boehm library.

* Revert "Link the static boehm library."

This reverts commit mono/mono@1f90d81.

* Use --export-all-symbols on cygwin/mingw to fix issues with boehm causing mono symbols not to be exported.

* Fix


Commit migrated from mono/mono@cc13723
ManickaP pushed a commit to ManickaP/runtime that referenced this pull request Jan 20, 2020
After mono/mono#16832 was merged the run-msbuild.bat
script has an additional required parameter for specifying the GC.

However the script only passed the MONO_TARGET_GC property to msbuild
if the script had no additional parameters which doesn't make sense.

Always pass the parameter, this should fix the boehm build on Windows i386.

Commit migrated from mono/mono@bdf4790
@rdp
Copy link

rdp commented Feb 15, 2020

Is the unity fork better? Why replace?

@vargaz
Copy link
Contributor

vargaz commented Feb 15, 2020

It is better, and mono doesn't really use it anymore, the main user is unity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants