public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Rashi Singhal <singhal.rashi@gmail.com>
To: cygwin@cygwin.com
Subject: Re: Cygwin 2.6.0 Fork issue
Date: Fri, 06 Jan 2017 02:58:00 -0000	[thread overview]
Message-ID: <CAPCR6Q1uzftL0FN_EQuWokhKWuLE1JR+4z7fD7=DJ+R9ib9aKg@mail.gmail.com> (raw)
In-Reply-To: <CAPCR6Q0p4dOqYBxeF4BohZeEq=GjctdbU4wvFxY7=5eUzyPJwQ@mail.gmail.com>

Hi ,

Thanks again for reply.Please find my response.:

You're saying that on this same computer, running Win 2012, this
sample code ran properly under a previous version of Cygwin? Which
version was that?

Answer: We were using pretty old version 1.7.0-58

Which source have you downloaded?  Whose source?

Answer: I have downloaded Cygwin 2.26 source

I have doubt ,.Is there any compilation variable or cygwin varaible
set for autoloading all dll's

Not sure why you're asking this.

Answer: As all the other dll's (windows native and actian pervasive)
are not getting loaded automatically with old version of
cygwin(1.7.0-58) so I asked if there any variable which say to
autoload the dll's.
I  know old version is very old to compare the things but I am doing
that as I used that as my cygwin version till now.

Your sample program is getting exceptions (i.e., is faulting) even
before it fork()s the child process. The child is faulting the same
way. This looks pretty much like your sample program was built with
incorrect assumptions.

Answer: Yes I am trying to find why such exceptions has come.
 are
You can try posting the compilation (and linking) command(s) that you
used to build your btrsamp.exe program. Maybe there's something
obvious there that somebody here can see. We can't help you debug your
program though, and you can't mix Windows-native DLLs that use
Microsoft C runtime with Cygwin code.

Answer: Please find below compilation and linking code

linking varaible

export CC=gcc
export LEX=flex
export CYGWIN=server
export PLATFORM=NT4
export OS_FLAGS="-Wall -DNT4 -DNW_SUPPORT -DNORELISAM -D_KERNEL -DCYG15"
export OS_CIOS=
export OS_LIBS="-L/usr/lib -lkernel32 -lcygwin -lmingw32 -L/usr/lib
-lkernel32 -L/usr/bin -lgcc -L/usr/local/lib -lcompat -lbtr"
export OS_DMS= # OS specific DMS's to be built
export LCFLAGS="$OS_FLAGS"               # Lex CFLAGS
export YCFLAGS="$OS_FLAGS"               # Yacc CFLAGS


makefile:
CC = gcc
LDFLAGS =
CFLAGS = -I../../intf/c

CFLAGS += -DBTI_WIN ----- this is for pervasive----
LDFLAGS += -L$(PVSW_ROOT)/lib
SYSLIBS=-lcurses $(OS_LIBS)

#EXECS = btrsamp
#OBJS = btrsamp.o

default:
@echo --------------------------------------------------------
@echo  PSQL
@echo  Btrieve samples
@echo
@echo  Type \"make all\" to make all executables.
@echo  Type \"make clean\" to remove object files.
@echo  Type \"make cleanall\" to remove all non-source files.
@echo --------------------------------------------------------

# all: $(EXECS)

all: allbins

allbins:
@echo "Compiling sample..."
@$(CC) $(INCLPATH)  btrapi.c -o btrapi btrsamp.c -o btrsamp $(CFLAGS)
$(LDFLAGS) $(SYSLIBS)

btrsamp:

Sample code:
------------ I have put only fork call code-------
iStat = fork();
printf("\nCreating Clients using fork method iStat is %d...\n",iStat);
if ((iStat) == 0 )
        {
printf("\n I am in child \n");
            rd_proc_wr_request();
printf("\n I am in child exit \n");  --- Program never reaches here
            exit(0);
}
    /*when the process client finishes Kill the child */

        else
        {
/*We are the parent so free the memory*/
sleep(15);
printf("start of  Main Process \n");
errWaitPid = waitpid( iStat, &wstatus, WNOHANG | WUNTRACED | WCONTINUED );
printf( "errWaitPid = %d, errno = %d, comment = %s\n", errWaitPid,
errno, strerror( errno ) );
printf ("Parent reads <%s>\n",shm) ;
printf("Exiting Main Process\n");
            exit(0);
        }
------------This child process------------
static void* rd_proc_wr_request()
{


    printf("This is child process...\n");
printf("Btrieve before B_OPEN status with BTRV (sample.btr) = %d\n", status);
status = BTRV(
                B_OPEN,
                posBlock1,
                dataBuf,
                &dataLen,
                keyBuf1,
                keyNum);

    printf("Btrieve B_OPEN status (sample.btr) = %d\n", status);  ----
Program never reaches here----



I hope I have put relevant information. Sorry if some extra infos are provided.

On Thu, Jan 5, 2017 at 9:33 AM, Rashi Singhal <singhal.rashi@gmail.com> wrote:
> Hi ,
>
>
> Thanks for information provided.
>
> I tried putting cygwin/ bin path in first place in environment
> variables. But result remain same.
>
> Yes all other DLL's getting loaded are either pervasive dll or windows
> native dll.
>
> I have doubt ,.Is there any compilation variable or cygwin varaible
> set for autoloading all dll's
>
> As in same windows 2012 system this extra DLL's are not getting loaded
> with previous versions of cywin and Fork is working there.
>
> I have downloaded the source also, I check some varibel there if you can help.
>
> Looks like program just hangs child process after open call and never
> comes back.
>
>   Please suggest what I can check .
>
>
> On Tue, Jan 3, 2017 at 2:23 PM, Rashi Singhal <singhal.rashi@gmail.com> wrote:
>> Hi,
>>
>> I am using cygwin 2.6.0 (32 bit) version with Actian Pervasive version 12.
>>
>> We have a program which will call fork() and in child process Btrieve
>> file is getting opened.
>>
>> While using latest version of cygwin, file open call is not working ,
>> Its not opening file nor displaying any error.
>>
>> Could you please help me on this .
>>
>> I checked all installation also . Still problem exist
>>
>> Regards,
>> Rashi

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

  parent reply	other threads:[~2017-01-06  2:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-03  8:53 Rashi Singhal
2017-01-05  4:04 ` Rashi Singhal
2017-01-05 10:17   ` Mark Geisert
2017-01-06  2:58   ` Rashi Singhal [this message]
     [not found] <586F5B5F.1070407@maxrnd.com>
2017-01-06  9:05 ` Mark Geisert
2017-01-06 20:34   ` René Berber
  -- strict thread matches above, loose matches on Subject: below --
2017-01-03 11:17 Mark Geisert
2016-12-08  5:37 Rashi Singhal
2016-12-08  7:17 ` Brian Inglis
2016-12-16  9:28 ` Rashi Singhal
2016-12-30  8:25   ` Rashi Singhal
2016-12-30 19:25     ` Eliot Moss

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='CAPCR6Q1uzftL0FN_EQuWokhKWuLE1JR+4z7fD7=DJ+R9ib9aKg@mail.gmail.com' \
    --to=singhal.rashi@gmail.com \
    --cc=cygwin@cygwin.com \
    /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: link
Be 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).