public inbox for cygwin-cvs@sourceware.org help / color / mirror / Atom feed
From: Corinna Vinschen <corinna@sourceware.org> To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: FAQ: building-cygwin: accomodate autoconf changes Date: Thu, 29 Apr 2021 10:14:10 +0000 (GMT) [thread overview] Message-ID: <20210429101410.57216395201B@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c66797eef8370b4d289a7a07070a58ac2c98e1c8 commit c66797eef8370b4d289a7a07070a58ac2c98e1c8 Author: Corinna Vinschen <corinna@vinschen.de> Date: Thu Apr 29 12:07:00 2021 +0200 Cygwin: FAQ: building-cygwin: accomodate autoconf changes - also, rephrase slightly for better readability and remove questionable old cruft Signed-off-by: Corinna Vinschen <corinna@vinschen.de> Diff: --- winsup/doc/faq-programming.xml | 65 +++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/winsup/doc/faq-programming.xml b/winsup/doc/faq-programming.xml index 07d3a61f2..26fcfe921 100644 --- a/winsup/doc/faq-programming.xml +++ b/winsup/doc/faq-programming.xml @@ -677,12 +677,12 @@ rewriting the runtime library in question from specs... <para>First, you need to make sure you have the necessary build tools installed; you at least need <literal>gcc-g++</literal>, -<literal>make</literal>, <literal>patch</literal>, <literal>perl</literal>, +<literal>make</literal>, <literal>automake</literal>, +<literal>autoconf</literal>, <literal>git</literal>, <literal>perl</literal>, <literal>gettext-devel</literal>, <literal>libiconv-devel</literal> and -<literal>zlib-devel</literal>. Installing <literal>git</literal> to fetch -the sources from the -<ulink url="https://cygwin.com/git/newlib-cygwin.git">source repository</ulink> -helps, too. If you change a certain core part of Cygwin, namely the layout +<literal>zlib-devel</literal>. Fetch the sources from the +<ulink url="https://cygwin.com/git/newlib-cygwin.git">Cygwin GIT source repository</ulink>. +If you change a certain core part of Cygwin, namely the layout of the Cygwin TLS area, you also have to install <literal>cocom</literal>. Building for 32-bit Cygwin also requires <literal>mingw64-i686-gcc-g++</literal> and <literal>mingw64-i686-zlib</literal>. @@ -697,36 +697,49 @@ which requires the <literal>dblatex</literal>, <literal>docbook2X</literal>, documentation, see the README included in the <literal>cygwin-doc</literal> package. </para> -<para>Next, get the Cygwin source. Ideally, you should check out what you -need from Git (<ulink url="https://cygwin.com/git.html"/>). This is the -<emphasis>preferred method</emphasis> for acquiring the sources. Otherwise, -if you are trying to duplicate a cygwin release then you should download the -corresponding source package +<para>Next, check out the Cygwin sources from the +<ulink url="https://cygwin.com/git.html">Cygwin GIT source repository</ulink>). +This is the <emphasis>preferred method</emphasis> for acquiring the sources. +Otherwise, if you are trying to duplicate a cygwin release then you should +download the corresponding source package (<literal>cygwin-x.y.z-n-src.tar.bz2</literal>). </para> <para>You <emphasis>must</emphasis> build cygwin in a separate directory from the source, so create something like a <literal>build/</literal> directory. -Assuming you checked out the source in <literal>/oss/src/</literal>, and you -also want to install to the temporary location <literal>install</literal>: +Assuming you checked out the source to +<literal>/oss/src/newlib-cygwin/</literal>, and you want to install to the +temporary location <literal>/oss/install/</literal>, these are the required +steps to build Cygwin: </para> <screen> -mkdir /oss/build -mkdir /oss/install -cd build -(/oss/src/configure --prefix=/oss/install -v; make) >& make.out -make install > install.log 2>&1 +$ mkdir -p /oss/src/newlib-cygwin/build # create build dir +$ mkdir -p /oss/install # create install dir +$ cd /oss/src/newlib-cygwin/winsup # chdir into Cygwin source dir and... +$ ./autogen.sh # create config files +$ cd /oss/src/newlib-cygwin/build # chdir into build dir +$ # create makefiles... +$ /oss/src/newlib-cygwin/configure --prefix=/oss/install +$ make # build Cygwin +$ make install # install Cygwin into install dir </screen> <para> -If the build works, install everything <emphasis>except</emphasis> the dll (if -you can). Then, close down all cygwin programs (including bash windows, -inetd, etc.), save your old dll, and copy the new dll to the correct -place. Then start up a bash window, or run a cygwin program from the -Windows command prompt, and see what happens. -</para> -<para>If you get the error "shared region is corrupted" it means that two -different versions of cygwin1.dll are running on your machine at the -same time. Remove all but one. +If the build worked, you can install everything you like into the currently +running system, <emphasis>except</emphasis> the Cygwin DLL +<command>cygwin1.dll</command> itself. For installing the DLL, close down +all Cygwin programs (including bash windows, any servers like +<command>cygserver</command>, etc.), save your old dll, and copy the new dll +to the correct place. Then, for first testing, start up a Cygwin program +from the Windows command prompt and see what happens. +</para> +<para>If you get a lengthy error messages like +<literal>"user shared memory version mismatch detected"</literal>, it's +very likely a Cygwin process still running using the old DLL. Kill it +in Windows' Task Manager or <command>taskkill</command> and try again. +If it's still not working, and if you're sure there's no older Cygwin +process still running, it's probably a bug you introduced with your changes. +From here on, you're on your own or discuss problems on the +<ulink url="https://cygwin.com/lists.html">Cygwin-developers mailing list</ulink>. </para> </answer></qandaentry>
reply other threads:[~2021-04-29 10:14 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210429101410.57216395201B@sourceware.org \ --to=corinna@sourceware.org \ --cc=cygwin-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).