Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Compilation] libgcc_s.so.1 must be installed for pthread_ca
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
creuvard
Apprentice
Apprentice


Joined: 14 May 2004
Posts: 211
Location: Bordeaux

PostPosted: Fri Feb 22, 2013 4:12 pm    Post subject: [Compilation] libgcc_s.so.1 must be installed for pthread_ca Reply with quote

Bonjour,

Je suis en train de faire un peu de C pour mon usage personnel. Mon programme se le chroot puis interroge une base de donnée MySQL.
Lorsque j'exécute mon programme, j’obtiens l'erreur suivante: libgcc_s.so.1 must be installed for pthread_cancel to work

Voici un morceau de code avec lequel je reproduit le bug
Quote:

#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <mysql/mysql.h>


MYSQL * my_sql_connect(const char *server, const char *dbname, const char *user, const char *passwd)
{
MYSQL *sql;
if ( (sql = mysql_init(NULL)) == NULL)
{
fprintf(stderr, "Memory error\n");
exit(EXIT_FAILURE);
}

mysql_options(sql, MYSQL_READ_DEFAULT_GROUP, "option");
if (mysql_real_connect(sql, server, user, passwd, dbname, 0, NULL, 0) == NULL)
{
fprintf(stderr, "Connection failed on '%s'\n", server);
fprintf(stderr, "%s", mysql_error(sql));
free(sql);
return NULL;
}
return sql;

}



int main(int argc, char **argv)
{
char *directory = NULL;
MYSQL *crv_mysql;

directory = strdup(argv[1]);
printf("Rep: %s\n", directory);

if (chroot (directory) != 0 || chdir ("/") != 0) {
fprintf( stderr, "%s%s%s%s\n", "crv_chroot(): Err[001] chroot(", directory,") failed with error -> ", strerror(errno));
return (-1);
}
printf("Chroot [OK]\n");

crv_mysql = my_sql_connect("server", "dbname", "user", "password");
mysql_close(crv_mysql);
return (0);
}


Je le compile avec la ligne suivante
Quote:

gcc -Wall main.c `mysql_config --cflags` `mysql_config --libs` -o crv


Je l'exécute avec la ligne suivante:
Quote:

creuvard@Sylvain ~/crv_bug_act1 $ sudo ./crv /home/creuvard/
Rep: /home/creuvard/
Chroot [OK]
libgcc_s.so.1 must be installed for pthread_cancel to work
creuvard@Sylvain ~/crv_bug_act1 $


Ce code compile et fonctionne sous OpenBSD ainsi que sous Ubuntu (dans une virtualBox).
J'arrive pas à retrouver le post, mais de mémoire, j'avais lue une chose sur le USE FLAG ntponly dans glibc ou un autre package, mais tout ce que j'ai testé jusque la n'a rien donné.

Merci :wink:
_________________
http://www.bashfr.org/:
[Nyaru] : les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpreter, parfois ça peut vouloir dire quelque chose
Back to top
View user's profile Send private message
El_Goretto
Advocate
Advocate


Joined: 29 May 2004
Posts: 2873
Location: Paris

PostPosted: Fri Feb 22, 2013 5:47 pm    Post subject: Reply with quote

Et tu l'as construit comment, ton environnement chroot?
_________________
-PC: 2500K/P8Z68V, 8Go, R9-290, ARC1220+5xWD500RE3, M4 256Go
-Home servers (hardened): µ-serv N40L, 2Go ECC ; NF9D-2700, 4Go ; DS61, i3 2100T, 16Go
-Réseau: ERL-3 + 3x switches GS108Tv2
-NAS: RN312
Back to top
View user's profile Send private message
creuvard
Apprentice
Apprentice


Joined: 14 May 2004
Posts: 211
Location: Bordeaux

PostPosted: Fri Feb 22, 2013 8:32 pm    Post subject: Reply with quote

Je comprends pas trop la question.

C'est mon programme qui se chroot (un peu comme un apache ou un vsftpd), pas moi qui l'exécute dans ou vers un environnement chrooté (comme pour une install gentoo).
_________________
http://www.bashfr.org/:
[Nyaru] : les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpreter, parfois ça peut vouloir dire quelque chose
Back to top
View user's profile Send private message
El_Goretto
Advocate
Advocate


Joined: 29 May 2004
Posts: 2873
Location: Paris

PostPosted: Sat Feb 23, 2013 12:56 pm    Post subject: Reply with quote

Mmmm, c'est le "mon programme se le chroot" qui m'a un peu laissé perplexe ^^
Je n'ai pas abordé le chroot côté programme, donc c'est peut être idiot, mais je me demandais s'il n'y avait pas des précautions à prendre, puisque les libs externes ne sont plus accessibles une fois que le "programme s'est chrooté". Genre soit les charger toutes avant intégralement (beuh?), ou bien un truc genre les avoir en statique dans ton programme. Mais là, ça dépasse clairement mes connaissances.
Pour dire, côté système, on constuit généralement un chroot avec les libs nécessaires au programme puis on l'exécute dans l'environnement chrooté.
_________________
-PC: 2500K/P8Z68V, 8Go, R9-290, ARC1220+5xWD500RE3, M4 256Go
-Home servers (hardened): µ-serv N40L, 2Go ECC ; NF9D-2700, 4Go ; DS61, i3 2100T, 16Go
-Réseau: ERL-3 + 3x switches GS108Tv2
-NAS: RN312
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum