| View previous topic :: View next topic |
| Author |
Message |
creuvard Apprentice


Joined: 14 May 2004 Posts: 211 Location: Bordeaux
|
Posted: Fri Feb 22, 2013 4:12 pm Post subject: [Compilation] libgcc_s.so.1 must be installed for pthread_ca |
|
|
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  _________________ 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 |
|
 |
El_Goretto Advocate


Joined: 29 May 2004 Posts: 2779 Location: Paris
|
Posted: Fri Feb 22, 2013 5:47 pm Post subject: |
|
|
Et tu l'as construit comment, ton environnement chroot? _________________ -PC: 2500K/P8Z68V, 8Go DDR3 1600 1.35V, HD6950, ARC1220+5xWD500RE3, M4 256Go
-Home server (hardened): µ-serv N40L, 2Go ECC
-Réseau: ERL-3 + 3x switches GS108Tv2
-NAS: RDNU2000 |
|
| Back to top |
|
 |
creuvard Apprentice


Joined: 14 May 2004 Posts: 211 Location: Bordeaux
|
Posted: Fri Feb 22, 2013 8:32 pm Post subject: |
|
|
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 |
|
 |
El_Goretto Advocate


Joined: 29 May 2004 Posts: 2779 Location: Paris
|
Posted: Sat Feb 23, 2013 12:56 pm Post subject: |
|
|
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 DDR3 1600 1.35V, HD6950, ARC1220+5xWD500RE3, M4 256Go
-Home server (hardened): µ-serv N40L, 2Go ECC
-Réseau: ERL-3 + 3x switches GS108Tv2
-NAS: RDNU2000 |
|
| Back to top |
|
 |
|
|
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
|
|