Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boostrapping on centos 7 with only gcc, no g++? #281

Closed
jepio opened this issue Jul 27, 2015 · 1 comment
Closed

boostrapping on centos 7 with only gcc, no g++? #281

jepio opened this issue Jul 27, 2015 · 1 comment

Comments

@jepio
Copy link

jepio commented Jul 27, 2015

Is it possible to boostrap properly without having a c++ compiler on the host system? In my case I have a working C toolset, I boostrap bmake, proceed to install pkgsrc's gcc (tried 49 and 5) which pulls in libtool. Libtools fails because it requires a c++ toolchain.

Would this work if I start with an older version of gcc?

@jepio
Copy link
Author

jepio commented Jul 28, 2015

To give an update on this issue: I was able to get a full (C/C++) GCC 4.7 running using only a host C compiler. GCC explicitly states that this is the last version that can be built C only, so I should've checked there before writing here. But getting this to work with pkgsrc is not easy either. Here's how it can be done:
ncurses, libtool and gmp need to be built without cxx bindings/support. The patches for ncurses and gmp follow (they won't apply due to tab vs. spaces but they may give you an idea).
ncurses:

diff --git a/devel/ncurses/Makefile.common b/devel/ncurses/Makefile.common
index 1f47109..2151703 100644
--- a/devel/ncurses/Makefile.common
+++ b/devel/ncurses/Makefile.common
@@ -21,7 +21,9 @@ GNU_CONFIGURE=        yes
 CONFIGURE_ARGS+=   --with-libtool
 CONFIGURE_ARGS+=   --enable-bsdpad
 CONFIGURE_ARGS+=   --enable-overwrite
-CONFIGURE_ARGS+=   --with-cxx-binding
+#CONFIGURE_ARGS+=  --with-cxx-binding
+CONFIGURE_ARGS+=   --without-cxx-binding
+CONFIGURE_ARGS+=   --without-cxx
 CONFIGURE_ARGS+=   --without-ada
 CONFIGURE_ARGS+=   --without-gpm
 CONFIGURE_ARGS+=   --with-manpage-format=normal
diff --git a/devel/ncurses/PLIST b/devel/ncurses/PLIST
index 8c9f9f3..ea754fc 100644
--- a/devel/ncurses/PLIST
+++ b/devel/ncurses/PLIST
@@ -11,14 +11,7 @@ bin/toe
 bin/tput
 bin/tset
 include/ncurses/curses.h
-include/ncurses/cursesapp.h
-include/ncurses/cursesf.h
-include/ncurses/cursesm.h
-include/ncurses/cursesp.h
-include/ncurses/cursesw.h
-include/ncurses/cursslk.h
 include/ncurses/eti.h
-include/ncurses/etip.h
 include/ncurses/form.h
 include/ncurses/menu.h
 include/ncurses/nc_tparm.h
@@ -32,7 +25,6 @@ include/ncurses/tic.h
 include/ncurses/unctrl.h
 lib/libform.la
 lib/libmenu.la
-lib/libncurses++.la
 lib/libncurses.la
 lib/libpanel.la
 man/man1/captoinfo.1

I'm not sure exactly how PLIST's work, but i basically applied the second patch above to any .PLIST file in the work directory until pkgsrc allowed me to install.

gmp:

diff --git a/devel/gmp/Makefile b/devel/gmp/Makefile
index c346801..513ad67 100644
--- a/devel/gmp/Makefile
+++ b/devel/gmp/Makefile
@@ -74,6 +74,7 @@ CONFIGURE_ARGS+=  --enable-fat
 .  endif
 .endif

+CONFIGURE_ARGS+=   --disable-cxx
 pre-configure:
    cd ${WRKSRC} && type autoconf && autoconf

libtool
I didn't have time to figure out how to add patches to be applied during the build, but for libtool it's necessary to remove the C++ preprocessor fails sanity check lines from the configure script(s) after the sources are unpacked. They don't seem to affect the build and the package compiles fine without them.

For gcc I applied the following patch to the Makefile

diff --git a/lang/gcc47/Makefile b/lang/gcc47/Makefile
index e333b91..6508a96 100644
--- a/lang/gcc47/Makefile
+++ b/lang/gcc47/Makefile
@@ -121,6 +121,8 @@ CONFIGURE_ARGS+=    --with-gnu-as --with-as=${PREFIX}/bin/gas
 .  endif
 .endif

+CONFIGURE_ARGS+=   --disable-multilib --disable-bootstrap
+
 pre-configure:
    ${RUN} cd ${WRKSRC} && ${MKDIR} ${OBJDIR}

It would be good to incorporate the first two solutions (ncurses and gmp) into pkgsrc using the options framework, as that is what they are. For the libtool it's a simple patch to 2 configure scripts applied conditionally (also as an option), should be doable in the Makefile.

@jperkin jperkin closed this as completed in 1f071f1 Jan 9, 2016
jperkin pushed a commit that referenced this issue Jan 9, 2016
## 1.0.1 (2015-12-27)

* [#283](httprb/http#283):
  Use io/wait on supported platforms.
  ([@tarcieri])

## 1.0.0 (2015-12-25)

* [#265](httprb/http#265):
  Remove deprecations ([@tarcieri]):
  - HTTP::Chainable#with_follow (use #follow)
  - HTTP::Chainable#with, #with_headers (use #headers)
  - HTTP::Chainable#auth(:basic, ...) (use #basic_auth)
  - HTTP::Chainable#default_headers (use #default_options[:headers])
  - HTTP::Headers#append (use #add)
  - HTTP::Options#[] hash-like API deprecated in favor of explicit methods
  - HTTP::Request#request_header (use #headline)
  - HTTP::Response::STATUS_CODES (use HTTP::Status::REASONS)
  - HTTP::Response::SYMBOL_TO_STATUS_CODE (no replacement)
  - HTTP::Response#status_code (use #status or #code)
  - HTTP::Response::Status#symbolize (use #to_sym)

* [#269](httprb/http#273):
  Close connection in case of error during request.
  ([@ixti])

* [#271](httprb/http#273):
  High-level exception wrappers for low-level I/O errors.
  ([@ixti])

* [#273](httprb/http#273):
  Add encoding option.
  ([@Connorhd])

* [#275](httprb/http#273):
  Support for disabling Nagle's algorithm with `HTTP.nodelay`.
  ([@nerdrew])

* [#276](httprb/http#276)
  Use Encoding::BINARY as the default encoding for HTTP::Response::Body.
  ([@tarcieri])

* [#278](httprb/http#278)
  Use an options hash for HTTP::Request initializer API.
  ([@ixti])

* [#279](httprb/http#279)
  Send headers and body in one write if possible.
  This avoids a pathological case in Nagle's algorithm.
  ([@tarcieri])

* [#281](httprb/http#281)
  Remove legacy 'Http' constant alias to 'HTTP'.
  ([@tarcieri])
jperkin pushed a commit that referenced this issue Jul 17, 2016
--------------------------------------------
Version 5.3.7: (7 May 2016)
 * Fix another MacOS build break, regarding library exports.

Version 5.3.6: (30 April 2016)
 * Add missing `parses-quotes-en.txt` file that python tests need.
 * Fix build break related to lg_fgetc when libeditline is missing.

Version 5.3.5: (28 April 2016)
 * Modified (hacked) Kazakh dictionary.
 * MacOS bug fix: fgetc behaves oddly in OSX, see bug #293.

Version 5.3.4: (16 March 2016)
 * Fix broken handling of apostrophe (issue #281).
 * Revamp the README file; describe transitivity.
 * Revised Turkish dictionary from Tatiana Batura, et al.
 * Prototype Kazakh dictionary from Tatiana Batura, et al.
 * Parse priority tweaks for the OpenCog chatbot.
 * Fix Windows printing problem affecting some utf8 codepoints (issue #285).

Version 5.3.3: (23 December 2015)
 * Improve support for quoted phrases.
 * Fixes for assorted zero-infinitive speech acts.
 * Add 37 paraphrasing verbs.
 * Add Greek mythological names.
 * A few dozen more common computing terms added to dictionary.
 * Misc coordination and question fixes.
 * Misc abbreviations.
 * Vietnamese dictionaries!
 * Major overhaul of subject-verb inversion.
 * Performance improvements on long sentences. (pull #247)
 * Change default setting of 'islands_ok' back to false (bug #140).
 * Fix for build break on Mac OSX el_capitan w/clang (bug #255).
 * Disable perl bindings by default; use Lingua::LinkParser

Version 5.3.2: (4 December 2015)
 * Performance improvements, esp. for long sentences.
 * Use std=c11 (the 2011 C standard) by default.
 * Partial Irish English support.
 * A few dozen common computing terms added to dictionary.
 * Fix for build break on Mac OSX.

Version 5.3.1: (22 November 2015)
 * Fix build break with SAT solver.

Version 5.3.0: (22 November 2015)
 * Major redesign of the python bindings.
 * Major redesign of sentence tokenization (the "wordgraph" design)
 * Verb 'steal' is optionally transitive.
 * Fixes for misc MSVC warnings.
 * Hebrew dictionary expansion.
 * Enhanced diagram printing, giving more space for link names.
 * Minor work on phonetic agreement for 'a' vs. 'an'.
 * Add ability to histogram the costs of different parses.
 * Improve support for splitting sentences.
 * Change default setting of 'islands_ok' to true.
 * Improve performance on long sentences.
 * Fix rare crash due to memory corruption on long sentences.
 * Random morphology generation can be enabled at runtime.
 * Remove obsolete, unmaintained MacOSX build file.
 * Extensive updates to man page.
 * Fix crash on long sentences (issue #137).
 * Fix a memory leak in language bindings (issue #138).
 * Remove bogus post-processor API function.
 * Fix broken domain letter printing.
 * New regex-file feature - negative regex'es.
 * Correct the handling of moprhology stems with non-LL links.
 * Fix !!LEFT-WALL and !!RIGHT-WALL
 * SAT solver now linked statically.
 * Assorted SAT sovler cleanup and improvements.
 * Performance improvement in fast matcher: 15% faster on fixes.batch.
jperkin pushed a commit that referenced this issue Aug 4, 2016
What's new in psycopg 2.6.2
^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed inconsistent state in externally closed connections
  (:tickets:`#263, #311, #443`).
- Report the server response status on errors (such as 🎫`#281`).
- Raise `!NotSupportedError` on unhandled server response status
  (:ticket:`#352`).
- Allow overriding string adapter encoding with no connection (:ticket:`#331`).
- The `~psycopg2.extras.wait_select` callback allows interrupting a
  long-running query in an interactive shell using :kbd:`Ctrl-C`
  (🎫`#333`).
- Fixed `!PersistentConnectionPool` on Python 3 (:ticket:`#348`).
- Fixed segfault on `repr()` of an unitialized connection (:ticket:`#361`).
- Allow adapting bytes using `~psycopg2.extensions.QuotedString` on Python 3
  (:ticket:`#365`).
- Added support for setuptools/wheel (:ticket:`#370`).
- Fix build on Windows with Python 3.5, VS 2015 (:ticket:`#380`).
- Fixed `!errorcodes.lookup` initialization thread-safety (:ticket:`#382`).
- Fixed `!read()` exception propagation in copy_from (:ticket:`#412`).
- Fixed possible NULL TZ decref  (:ticket:`#424`).
- `~psycopg2.errorcodes` map updated to PostgreSQL 9.5.
jperkin pushed a commit that referenced this issue Mar 20, 2017
=== Net::LDAP 0.16.0

* Sasl fix {#281}[ruby-ldap/ruby-net-ldap#281]
* enable TLS hostname validation {#279}[ruby-ldap/ruby-net-ldap#279]
* update rubocop to 0.42.0 {#278}[ruby-ldap/ruby-net-ldap#278]
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

No branches or pull requests

1 participant